在运送到美国时,我试图将运送地址限制在一个州(肯塔基州),下面的代码在WooCommerce 3.5.8上有效,但是一旦更新WooCommerce,它就会停止工作。我尝试了不同的增量(3.6.0 beta,rc1等),并且3.5.8之后的所有内容都会导致其停止工作(它显示的是所有州而不仅仅是肯塔基州)。
我尝试搜索该选项是否已更改或已弃用,但我找不到它或执行此操作的另一种方法。我也尝试过在这里找到的其他一些代码,但这也不起作用。
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields )
{
$fields['shipping']['shipping_state']['options'] = array('KY' => 'Kentucky' );
return $fields;
}
以上是否有问题或我需要进行一些更改?
答案 0 :(得分:1)
以下内容将设置默认的预定义运输国家和州,将运输状态选择字段显示为已禁用(只读),并选择“肯塔基州”值:
add_filter( 'woocommerce_shipping_fields' , 'custom_shipping_state_fields', 100, 1 );
function custom_shipping_state_fields( $fields ) {
WC()->customer->set_shipping_country('US'); // Set shipping country
WC()->customer->set_shipping_state('KY'); // Set shipping state
$fields['shipping_state']['type'] = 'select';
$fields['shipping_state']['options'] = ['KY' => __('Kentucky', 'WooCommerce')];
$fields['shipping_state']['default'] = 'KY';
$fields['shipping_state']['input_class'] = [];
$fields['shipping_state']['custom_attributes'] = ['disabled' => 'disabled'];
return $fields;
}
代码进入活动子主题(或活动主题)的functions.php文件中。经过测试和工作。