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

Show or hide WooCommerce checkout fields based on checked radio button

亲爱的,

我正在使用代码片段插件将我的代码添加到我的电子商务项目中,我的送货选项中有取货和送货插件,我想做的是,一旦我 select 取货选项,客户地址信息字段将被隐藏,如果从餐厅取货 selected.

,保持显示是不合逻辑的,并且是强制性的

snippet return error 语法错误,意外的'(',期待变量(T_VARIABLE)或'{'或'$' 它与替换 有关,但那也不起作用,抱歉让我感到困惑,我是编程新手,期待得到您的支持 我的项目结帐页面。 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();
    }
  });
});

谢谢。

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

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 文件。已测试并有效。