如何在管理面板中设置WooCommerce属性文本字段的值/术语?

时间:2015-09-04 作者:Faisal Ashfaq

我正在开发一个插件,可以自动填充属性文本字段。

有一个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 个回复
最合适的回答,由SO网友:daniyalahmad 整理而成

我假设文本文件的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来了,把它放在函数中。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\');
附言:你必须做验证工作。