我希望根据所选的支付网关删除结帐字段 .
我在function.php中添加了以下代码,但它无效 . 我面临的问题是,它正处于If状态,但如果条件未设置则不在内部 . 当我试图在条件内回应时,它会在浏览器中显示出来 .
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
if($_POST['payment_method'] === "wcwcPDpg"){
echo "this";
unset($fields['billing']['billing_first_name']);
unset($fields['billing']['billing_last_name']);
unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_address_1']);
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_city']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_country']);
unset($fields['billing']['billing_state']);
unset($fields['billing']['billing_phone']);
unset($fields['order']['order_comments']);
unset($fields['billing']['billing_email']);
unset($fields['account']['account_username']);
unset($fields['account']['account_password']);
unset($fields['account']['account_password-2']);
}
return $fields;
}
当我删除if条件时,字段未设置,但是,我只想取消设置特定的支付网关 .
任何帮助赞赏:)
1 回答
尝试
if (WC()->session->chosen_payment_method == "wcwcPDpg") {
代替
if($_POST['payment_method'] === "wcwcPDpg"){
然后将其添加到子主题的functions.php中,以便每次切换支付网关时应用过滤器:
我怀疑有更好的方法来做到这一点,但这是我的第一次尝试 . 如果您有更好的解决方案,请在此处发布更新 .