Woocommerce добавить заказ с экрана администратора в AgileCRM - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь интегрировать 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, которую я могу использовать для вызова заказов, созданных администратором.

Теперь мой вопрос: кто-нибудь исправил эту проблему, и, если есть какая-либо помощь, я могу ее решить.

Спасибо, Гаутама

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...