【发布时间】:2019-08-30 13:51:33
【问题描述】:
我在 WooCommerce 商店的结帐页面中为可选的时事通讯订阅添加了一个自定义复选框:
add_action( 'woocommerce_after_order_notes', 'add_checkout_newsletter_subscribe', 9 );
function add_checkout_newsletter_subscribe() {
woocommerce_form_field( 'checkout_newsletter', array(
'type' => 'checkbox',
'class' => array('form-row checkout-newsletter-box'),
'label_class' => array('woocommerce-form__label woocommerce-form__label-for-checkbox checkbox'),
'input_class' => array('woocommerce-form__input woocommerce-form__input-checkbox input-checkbox'),
'required' => false,
'label' => 'Subscribe me.',
));
}
我为“我的帐户”页面创建了一个类似的复选框:
add_action( 'woocommerce_edit_account_form', 'display_checkbox_in_account_page' );
function display_checkbox_in_account_page() {
woocommerce_form_field( 'newsletter-account', array(
'type' => 'checkbox',
'class' => array('form-row-wide'),
'label' => __( 'Subscribe me.', 'woocommerce' ),
'clear' => true,
), get_user_meta(get_current_user_id(), 'newsletter-account', true ) );
}
add_action( 'woocommerce_save_account_details', 'save_checkbox_value_to_account_details', 10, 1 );
function save_checkbox_value_to_account_details( $user_id ) {
$value = isset( $_POST['newsletter-account'] ) ? '1' : '0';
update_user_meta( $user_id, 'newsletter-account', $value );
}
现在我正在寻找一种方法来连接两个复选框。
我想要获得的是,如果客户在结帐页面中标记了复选框并且它是注册用户,那么“我的帐户”页面中的复选框也应该被标记。
我认为我需要使用 woocommerce_edit_account_form 钩子,但不幸的是我没有其他线索来了解如何获得这样的结果。
你们能指出我正确的方向吗?
非常感谢您的帮助!
【问题讨论】:
标签: php wordpress woocommerce checkout user-data