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

时间:2015-02-28 21:25:33

标签: php wordpress woocommerce crm

我正在连接到外部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已经对WP进行了哈希处理,我不相信这是可行的。

1 个答案:

答案 0 :(得分:1)

我通过挂钩

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

需要在结帐阶段触发此过滤器,因为我们在结帐/帐户创建过程中通过$ _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);