限制 Woocommerce 中的结帐运输状态

在运送到美国时,我试图将送货地址限制在一个州(肯塔基州),下面的代码适用于 WooCommerce 3.5.8,但一旦更新 WooCommerce,它就会停止工作。我尝试了不同的增量(3.6.0 beta、rc1 等),3.5.8 之后的所有内容都会导致它停止工作(它显示所有状态,而不仅仅是 Kentucky)。


我曾尝试搜索该选项是否已更改或已被弃用,但我无法找到它或其他方法。我也尝试了一些我在这里找到的其他代码,但也没有用。


 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;

}

以上是否有问题或我需要进行一些更改?


FFIVE
浏览 100回答 1
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 文件中。测试和工作。
打开App,查看更多内容
随时随地看视频慕课网APP