使用复选框更新自定义用户元值

时间:2019-05-15 02:26:13

标签: php wordpress woocommerce account user-data

我正在使用Integrate Sendgrid Newsletter Subscription form on WooCommrece Register Page答案代码作为我以前的答案之一。在“我的帐户”页面的Woocommerce帐户详细信息部分中,我有一个自定义用户元字段receive_newsletter,默认情况下,该字段在选中时的值为“ 1”,例如:

enter image description here

如果未选中该值,则该值为空并将其取消选中。

但是,当我保存更改时,它不会更新。

这应该是输出:

enter image description here

2 个答案:

答案 0 :(得分:0)

尝试:

function save_my_account_receive_newsletter( $user_ID ){
    $receive_newsletter = ! empty( $_POST['receive_newsletter'] ) ? wc_clean( $_POST['receive_newsletter'] ) : '';
    update_user_meta( $user_ID, 'receive_newsletter', $receive_newsletter );
}
add_action( 'woocommerce_save_account_details', 'save_my_account_receive_newsletter' );

答案 1 :(得分:-1)

仅弄清楚为什么它不起作用,我没有检查该值。如果有人遇到同样的问题,请使用它。 sanitize_text_field()

谢谢。