【发布时间】:2016-11-10 17:07:55
【问题描述】:
我正在尝试重新排序在 woocommerce_checkout_init 过滤器的帮助下添加的 2 个自定义结帐字段,只是当我将 woocommerce_checkout_fields 过滤器应用于重新排序字段时,它无法识别它们并且它们是 @ 987654324@.
我认为这是因为过滤器woocommerce_checkout_init 在woocommerce_checkout_fields 之后。
我该如何解决这个问题?
这是我的代码:
add_action( 'woocommerce_checkout_init', 'wc_add_confirm_email_checkout', 10, 2 );
function wc_add_confirm_email_checkout( $checkout ) {
$checkout->checkout_fields['billing']['billing_email2'] = array(
'type' => 'text',
'label' => __( 'Confirm Email Address', 'woocommerce' ),
'required' => true,
'placeholder' => _x( 'Confirm Email Address', 'placeholder', 'woocommerce' )
);
}
add_action( 'woocommerce_checkout_init', 'wc_add_confirm_password_checkout', 10, 2 );
function wc_add_confirm_password_checkout( $checkout ) {
//var_dump($checkout->checkout_fields);
if ( get_option( 'woocommerce_registration_generate_password' ) == 'no' ) {
$checkout->checkout_fields['account']['account_password2'] = array(
'type' => 'password',
'label' => __( 'Confirm password', 'woocommerce' ),
'required' => true,
'placeholder' => _x( 'Confirm Password', 'placeholder', 'woocommerce' )
);
}
}
add_filter('woocommerce_checkout_fields','reorder_woo_fields');
function reorder_woo_fields($fields) {
$fields2['billing']['billing_first_name'] = $fields['billing']['billing_first_name'];
$fields2['billing']['billing_last_name'] = $fields['billing']['billing_last_name'];
$fields2['billing']['billingooglg_email'] = $fields['billing']['billing_email'];
$fields2['billing']['billing_email2'] = $fields['billing']['billing_email2'];
$fields2['billing']['account_password'] = $fields['account']['account_password'];
$fields2['billing']['account_password2'] = $fields['account']['account_password2'];
$fields2['billing']['billing_address_1'] = $fields['billing']['billing_address_1'];
$fields2['billing']['billing_postcode'] = $fields['billing']['billing_postcode'];
var_dump($fields2);
//return $fields2;
}
【问题讨论】:
-
任何人有任何想法,感谢投票。
-
@LoicTheAztec 感谢您的帮助,它使重新订购的部分起到了作用,因此用您给我的循环和数组替换了它(根据我的代码删除一些字段)并添加了电子邮件地址并确认我想要的密码。
-
我好奇的问题:所以有可能将结帐帐单字段与结帐帐户字段融合在一起吗? …如果您想更新我的答案,欢迎您。您可以在最后使用您的代码添加更新。谢谢
-
啊,不,我将它们分开添加,也许我可以将它们添加到单个数组中,例如帐户数组以将其更改为计费数组。
标签: php wordpress woocommerce field checkout