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

问题描述 投票:1回答:2

我正在尝试在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( '[email protected]', $password, '[email protected]' );
}

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

如果我在动作woocommerce_after_register_post_type上调用相同的函数,则会创建用户。

知道可能导致这个问题的原因是什么吗?

php wordpress woocommerce orders user-data
2个回答
0
投票

以下代码使用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 = '[email protected]';
    // $user_name   = $user_email = $order->get_billing_email();
    $customer_id = wc_create_new_customer( $user_email, $user_name, $password );
}

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


0
投票

看起来您的函数名称与钩子中的一个调用不匹配:

custom_woocommerce_order_status_completed

© www.soinside.com 2019 - 2024. All rights reserved.