web-dev-qa-db-ja.com

管理パネルでWoocommerce属性テキストフィールドの値/期間を設定する方法

私は属性のテキストフィールドを自動入力することになっているプラ​​グインを開発しています。

ユーザーがURLを入力するURLテキストフィールドがあります。フォーカスを絞ってAJAX呼び出しをトリガーしてデータを保存できますが、ここで達成したいのは強調表示されたフィールドに保存データを表示することです。同様に。

enter image description here

表示するためにフックで次のコードを使用しています。

if( function_exists( 'wc_get_attribute_taxonomies' ) && ( $attribute_taxonomies = wc_get_attribute_taxonomies() ) ) {

    $defaults = array();
    $name = wc_attribute_taxonomy_name( $tax->attribute_name );
    foreach ( $attribute_taxonomies as $key=>$tax ) {
                $defaults[ $name ] = array (
                    'name' => $name,
                    'value' => 'thisTextShouldAppearInHighlightedFieldsOfScreenShot',
                    'position' => $key+1,
                    'is_visible' => 1,
                    'is_variation' => 1,
                    'is_taxonomy' => 1,
                );

            update_post_meta( $post->ID , '_product_attributes', $defaults );
}

任意の助けは大歓迎です!

1
Faisal Ashfaq

そのテキストのIDがファイルされていると仮定します。url-fieldはここにJSコードがあります

$("#url-field").keyup(function(event) {
     var url_val=$("#url-field").val();
      $.ajax({
            type:"POST",
            url: ajaxurl,
            data: {
                action:'use_someprefix_update_url',
                search_string:url_val,
                namefiled : namehere,
                postid : postidhereYouCangetItIHope  
            },
            success:function(data){
               alert("Success, you can remove me :-) ");
            }
        });
});

これがPHPです。これをfunctions.phpに入れてください。

function use_someprefix_update_url(){
    $defaults = array();
    $defaults[ $_POST['namefiled'] ] = array (
                    'name' => $_POST['namefiled'],
                    'value' => $_POST['search_string'],
                );
     update_post_meta( $_POST['postid'] , '_product_attributes', $defaults );
}

また、このフックも:

add_action('wp_ajax_use_someprefix_update_url', 'use_someprefix_update_url');

P.S:あなたは検証のものをする必要があります。

1
daniyalahmad