为了账号安全,请及时绑定邮箱和手机立即绑定

限制 Woocommerce 中的结帐运输状态

限制 Woocommerce 中的结帐运输状态

PHP
FFIVE 2021-07-11 16:09:14
在运送到美国时,我试图将送货地址限制在一个州(肯塔基州),下面的代码适用于 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;}以上是否有问题或我需要进行一些更改?
查看完整描述

1 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

以下将设置默认的预定义运输国家/地区和州,将运输状态选择字段显示为禁用(只读)并选择“肯塔基州”值:


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 文件中。测试和工作。


查看完整回答
反对 回复 2021-07-16
  • 1 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信