Я пытаюсь интегрировать woocommerce в AgileCRM. Ссылка на приведенный ниже вопрос. Я думаю, что у этого плагина есть та же проблема, в которой детали заказа обновляются в платформе CRM, только когда они проходят предварительную проверку.
Хук WooCommerce для создания заказа от администратора
Моя проблема в том, что я не являюсь разработчиком плагинов, и команда AgileCRM говорит, что нам, возможно, придется написать собственный код для этого. Позор, что они могли сделать это за считанные минуты, когда мне пришлось копать каждую функцию и изучать разработку плагина.
Я обнаружил, что в рамках регистрации плагина он имеет это в
funtions.php
function AgileWC_order_status_changed()
{
global $AGILEWC_SYNC_OPTIONS;
$ordersArr = func_get_args();
$wcorder = new WC_Order($ordersArr[0]);
$order = AgileWC_getOrder($wcorder);
$orderHook = AgileCRM::$hooks['order.updated'];
if (isset($_SESSION['agileWCOrderHook'])) {
$orderHook = $_SESSION['agileWCOrderHook'];
unset($_SESSION['agileWCOrderHook']);
}
$agilecrm = new AgileCRM();
$agilecrm->customerEmail = $wcorder->billing_email;
$agilecrm->hook = $orderHook;
$agilecrm->payLoad = array("order" => $order);
$agilecrm->syncAsTags = "";
if (isset($AGILEWC_SYNC_OPTIONS['sync_product_tags'])) {
$agilecrm->syncAsTags .= "_products";
}
if (isset($AGILEWC_SYNC_OPTIONS['sync_category_tags'])) {
$agilecrm->syncAsTags .= "_categories";
}
$agilecrm->post();
}
и в функции регистрации плагина есть этот код
if ($AGILEWC_DOMAIN && $AGILEWC_KEY) {
if (is_array($AGILEWC_SYNC_OPTIONS)) {
if (isset($AGILEWC_SYNC_OPTIONS['track_visitors']) || isset($AGILEWC_SYNC_OPTIONS['web_rules'])) {
add_action('wp_footer', 'AgileWC_script');
}
if (isset($AGILEWC_SYNC_OPTIONS['sync_customers'])) {
add_action('woocommerce_checkout_order_processed', 'AgileWC_created_customer');
}
if (isset($AGILEWC_SYNC_OPTIONS['sync_orders'])) {
add_action('woocommerce_new_order', 'AgileWC_new_order');
add_action('woocommerce_order_status_changed', 'AgileWC_order_status_changed');
add_action('save_post_shop_order','AgileWC_order_status_changed');
add_action('woocommerce_new_customer_note', 'AgileWC_new_customer_note');
}
}
}
// Добавлено мной, но без действий
add_action ( 'save_post_shop_order', 'AgileWC_order_status_changed');
Теперь я прочитал в одном посте, что нет ловушки woocommerce, которую я могу использовать для вызова заказов, созданных администратором.
Теперь мой вопрос: кто-нибудь исправил эту проблему, и, если есть какая-либо помощь, я могу ее решить.
Спасибо,
Гаутама