【发布时间】:2018-06-12 15:42:17
【问题描述】:
我有一个函数可以在购买后创建一个用户,连接到woocommerce_thankyou。用户已创建,但我也在尝试设置一个 usermeta 字段,它似乎被忽略了。函数如下:
function wc_register_user_post_purchase( $order_id ) {
// Get the order data
$order = new WC_Order( $order_id );
// Get the email address from the order
$order_email = $order->billing_email;
// Check to see if there is already a user with the order email
$acct_username = username_exists( $order_email );
$acct_email = email_exists( $order_email );
// If the user doesn't exist, create an account
if ( $acct_username == false && $acct_email == false ) {
// Generate a password
$random_password = wp_generate_password();
// Create a new user
$created_user_id = wp_create_user( $order_email, $random_password, $order_email );
// Set an 'acct_auto_created' custom field so we can check it later
update_user_meta( $created_user_id, 'acct_auto_created', 'auto_generated_pass' );
}
}
add_action( 'woocommerce_thankyou', 'wc_register_user_post_purchase', 10, 1 );
如果我查看数据库中的 wp_usermeta 表以获取创建的用户 ID,acct_auto_created 字段根本没有设置。
我在这里错过了什么?
谢谢!
【问题讨论】:
-
尝试使用 add_user_meta 而不是 update_user_meta
标签: wordpress woocommerce hook-woocommerce