gpt4 book ai didi

php - 在结帐页面上更改送货方式时会触发哪种方法或操作 Hook ?

转载 作者:搜寻专家 更新时间:2023-10-31 21:25:33 24 4
gpt4 key购买 nike

我需要将地址字段更改为“必填”,此时用户将选择“本地取货”以外的送货方式。

我设法使用过滤器使其默认可选(默认选择本地取件),如下所示:

add_filter( 'woocommerce_checkout_fields', 'disable_required_address_shipping' );

function disable_required_address_shipping($fields ) {
if ( check_if_local_pickup() ) {

$fields['billing']['billing_address_1']['required'] = false;
$fields['billing']['billing_address_2']['required'] = false;
$fields['billing']['billing_city']['required'] = false;
}

return $fields;

}

function check_if_local_pickup() {
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
$chosen_shipping = $chosen_methods[0];
if ($chosen_shipping == 'local_pickup') {
return true;
}
}

但我需要使用操作动态更改它。

我试图在这里寻找解决方案,但找不到。

更改送货方式时是否会触发任何操作?
有什么想法吗?

最佳答案

要在运输方式更改时触发操作,您可以使用 do_action( 'woocommerce_shipping_method_chosen', $chosen_method );:

do_action( 'woocommerce_shipping_method_chosen', 'check_if_local_pickup', 10, 1 );
function check_if_local_pickup( $chosen_method ) {
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
$chosen_shipping = $chosen_methods[0];
if ($chosen_shipping == 'local_pickup') {
return true;
}
}

引用文献:
woocommerce_shipping_method_chosen (hookr.io)
Source code: class WC_Shipping (line 311)

关于php - 在结帐页面上更改送货方式时会触发哪种方法或操作 Hook ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37058312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com