php 除了WooCommerce中的特定国家/地区外,有条件地使Postcode Checkout字段为必填字段

rks48beu  于 2023-09-29  发布在  PHP
关注(0)|答案(1)|浏览(90)

我想做一个WooCommerce邮政编码结帐字段,只有当国家不是沙特阿拉伯时才需要。只有当客户选择沙特阿拉伯以外的国家/地区时,才需要此字段
但它不起作用

function woocommerce_no_postcode(array $fields): array
{
  // bail if the country is not SA
  if (!isset($_POST['billing_country']) || 'SA' === $_POST['billing_country']) {
    return $fields;
  }
  $fields['billing']['postcode']['required'] = true;
  return $fields;
}
add_filter('woocommerce_checkout_fields', 'woocommerce_no_postcode', 10, 1);');
cidc1ykv

cidc1ykv1#

以下将完成这项工作,使WooCommerce邮政编码Checkout字段仅在国家不是沙特阿拉伯时才需要:

add_filter( 'woocommerce_get_country_locale', 'custom_country_locale_postcode', 10, 1 );
function custom_country_locale_postcode( $locale ) {
    foreach ( $locale as $country => $data ){
        $locale[$country] = array( 'postcode' => array(
            'required' => true,
        ) );
    }

    $locale['SA'] = array( 'postcode' => array(
        'required' => false,
    ) );

    return $locale;
}

代码放在子主题的functions.php文件中(或插件中)。测试和作品。

相关问题