根据选中的单选按钮显示或隐藏WooCommerce结帐字段

时间:2020-08-22 17:57:50

标签: php jquery wordpress woocommerce checkout

亲爱的

我正在使用snippet插件将代码添加到我的ecommerace项目中,我的交付选项中有取货和交付插件,我想做的是,一旦选择了取货选项,客户地址信息字段将为隐藏要保留它的出现是不合逻辑的,如果选择了从餐厅提货则必须保留。

代码段返回错误语法错误,意外的'(',预期变量(T_VARIABLE)或'{'或'$' 它与用<?php>替换有关,但那也不起作用,很抱歉使我对编程感到困惑,并期待得到您的支持 我的项目结帐页面。 https://www.order.ramadaencorekuwait.com/checkout-2/

 $(document).ready(function() {
  $('input').change(function() {
    if ($('input[value="pickup"]').is(':checked') && $('input[value="delivery"]').is(':unchecked')) {
      $('input[value="billing_address_4"]').hide();
    }
    else {
      $('input[value="billing_address_4"]').show();
    }
  });
});

谢谢。

1 个答案:

答案 0 :(得分:2)

您的代码中有一些错误。使用以下内容根据单选按钮的选择显示/隐藏自定义结帐字段:

add_action('wp_footer', 'custom_checkout_js_script');
function custom_checkout_js_script() {
    if( is_checkout() && ! is_wc_endpoint_url() ) :
    ?>
    <script language="javascript">
    jQuery( function($){
        var a = 'input[name="pi_delivery_type"]:checked',
            b = 'input[name="billing_address_4"]';

        // Custom function that show hide specific field, based on radio input value
        function showHideField( value, field ){
            if ( value === 'pickup' ) {
                $(field).parent().parent().hide();
            } else {
                $(field).parent().parent().show();
            }
        }

        // On start after DOM is loaded
        showHideField( $(a).val(), b );

        // On radio button change live event
        $('form.woocommerce-checkout').on('change', a, function() {
            showHideField( $(this).val(), b );
        });
    });
    </script>
    <?php
    endif;
}

代码进入活动子主题(或活动主题)的functions.php文件中。经过测试,可以正常工作。