选择正确的发货方式时显示特殊字段

时间:2019-01-24 作者:Pavel Janicek

我尝试了这种方法:

add_action( \'woocommerce_review_order_before_payment\', array( $this, \'my_custom_checkout_field\') );
add_action(\'updated_checkout\',array( $this, \'my_custom_checkout_field\'));

public function my_custom_checkout_field(){

    $chosen_methods = WC()->session->get( \'chosen_shipping_methods\' );
    $chosen_shipping = $chosen_methods[0];
    if($chosen_shipping == \'zasilkovna\'){
        include_once(\'special-field.php\');
    }
}
但是,当用户单击发货方式时,不会显示特殊字段。用户需要手动刷新页面,这不好。

我需要在ajax上挂接自己,并在单击正确的发货时显示字段。

我知道jqery正在发动行动,但不太确定如何抓住它。。。

1 个回复
最合适的回答,由SO网友:Alexander Holsgrove 整理而成

您需要在字段上设置更改事件:

$(\'select.shipping-field\').on(\'change\', function()) {
   $.post(
       ajaxurl, 
       {
           action: \'shipping_special\',
           data: \'your data here..\'
       }, 
       function(response){
           // The response should contain your special field HTML
       }
   );
});
您可以传递当前发货选择选项

然后你的主题functions.php 如果发货是zasilkovna

add_action(\'wp_ajax_shipping_special\', \'shipping_special_field\' );
add_action(\'wp_ajax_nopriv_shipping_special\', \'shipping_special_field\' );

function shipping_special_field() {
    // Return your special field HTML here
}
请参见wp_ajax__requestaction, 这tutorial 来自WPMUDev或此SO answer;

相关推荐

尝试在WordPress中实现AJAX注释,遇到WP错误

我试图在WordPress中为我的评论实现Ajax,使用this tutorial. 但我在将教程中的代码集成到自己的预构建主题时遇到了问题。问题是,我要么得到一个WP错误“检测到重复注释;看来你已经说过了!”或标准500错误。以下是我得到的:下面是我对ajax的评论。js文件如下所示: * Let\'s begin with validation functions */ jQuery.extend(jQuery.fn, { /* * check i