繁体   English   中英

在WooCommerce 3+中按订单状态完成操作创建用户挂钩

[英]Create user on order status completed action hook in WooCommerce 3+

我正在尝试在woocommerce_order_status_completed挂钩内创建一个新用户。

add_action( 'woocommerce_order_status_completed', 'custom_woocommerce_order_status_completed', 10, 1 );

function custom_woocommerce_order_status_completed( $order_id )
{
    $password = wp_generate_password( 16, true );
    $user_id = wp_create_user( 'usertest@gmail.com', $password, 'usertest@gmail.com' );
}

$user_id返回实际ID。 它似乎在创建用户,但是当我查看后端时,该用户并不在那里。 我什至在数据库中检查用户ID,但不存在。

如果我在操作woocommerce_after_register_post_type上调用相同的函数,它将创建用户。

任何想法可能导致此问题吗?

您的函数名称似乎与您的钩子中的一个调用不匹配:

custom_woocommerce_order_status_completed

以下代码改为使用Woocommerce wc_create_new_customer()专用函数:

add_action( 'woocommerce_order_status_completed', 'action_on_order_status_completed', 20, 2 );
function action_on_order_status_completed( $order_id, $order ){
    $password    = wp_generate_password( 16, true );
    $user_name   = $user_email = 'usertest@gmail.com';
    // $user_name   = $user_email = $order->get_billing_email();
    $customer_id = wc_create_new_customer( $user_email, $user_name, $password );
}

代码进入您的活动子主题(或活动主题)的function.php文件中。 经过测试和工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM