【发布时间】:2021-06-07 08:11:15
【问题描述】:
在 WooCommerce 商店中,我有 2 种基于包裹储物柜的送货方式。第一个是预付款,第二个是货到付款。
这个想法是:
- easypack_parcel_machines -> 仅预付款
- easypack_parcel_machines_cod -> 仅限货到付款
我的代码如下。在两种情况下都申请后,我只有预付款。怎么了?
add_filter( 'woocommerce_available_payment_gateways', 'gateway_disable_shipping_meth' );
function gateway_disable_shipping_meth( $available_gateways ) {
if ( ! is_admin() ) {
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
$chosen_shipping = $chosen_methods[0];
if ( isset( $available_gateways['bacs'] ) && 0 === strpos( $chosen_shipping, 'easypack_parcel_machines' ) ) {
unset( $available_gateways['cod'] );
}
elseif ( isset( $available_gateways['cod'] ) && 0 === strpos( $chosen_shipping, 'easypack_parcel_machines_cod' ) ) {
unset( $available_gateways['bacs'] );
}
}
return $available_gateways;
}
【问题讨论】:
标签: php wordpress woocommerce payment-gateway shipping-method