Я подключаюсь к внешнему API CRM, где я пытаюсь создать учетную запись, используя одно и то же имя пользователя и пароль (которые клиент создает при регистрации на странице оформления заказа) для обеих учетных записей. Можно ли получить пароль пользователя до его хеширования с помощью 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. Я не верю, что это возможно сделать, если pw уже хэшируется WP.
Я решил проблему с помощью специального плагина 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);
Других решений пока нет …