在 WooCommerce 结帐期间创建帐户时获取密码值

Get Password Value When Creating Account during WooCommerce Checkout

我正在连接到外部 CRM API,我正在尝试使用相同的用户名和密码(客户在结帐页面上注册时创建的)为两个帐户创建一个帐户。是否可以在使用 Wordpress 散列之前获取用户密码?

我正在从 WooCommerce 访问我需要的所有其他用户订单信息并通过 API 传递到 CRM:

$order = new WC_Order($order_id);
$order->billing_first_name;
$order->billing_last_name;
...

我只需要暂时取消散列密码。我查看了这里的 WC_Order 文档:http://docs.woothemes.com/wc-apidocs/class-WC_Order.html 并没有找到好的答案。

明确地说,我不会将未经哈希处理的密码发布到任何一个数据库。 WP 将对 PW 进行哈希处理并像往常一样存储它。我正在尝试通过 Neon API http://help.neoncrm.com/node/12 使用相同的用户名和密码同时创建另一个帐户。如果密码已经被 WP 散列,我不相信这是可能的。

我使用挂接到

的自定义 WooCommerce 插件解决了这个问题
'woocommerce_order_status_completed'  

此过滤器需要在结帐阶段触发,因为我们在 checkout/account 创建过程中通过 $_POST 访问密码字段。要触发此过滤器,需要使用此过滤器将订单状态更新为已完成:

'woocommerce_payment_complete_order_status'  

您可以在此处查看完整的方法和过滤器:http://www.rcorreia.com/woocommerce/woocommerce-automatically-set-order-status-payment-received/

插件或主题中的过滤方法内部
'woocommerce_order_status_completed'

可以通过以下方式将帐户密码传递给 Neon api:

$accountPassword = sanitize_text_field($_POST['account_password']);

然后通过密码传递其他用户数据请求参数,如:

array( ... 'individualAccount.login.password' => $accountPassword);