我正在尝试将woocommerce集成到AgileCRM中。参考下面的问题,我认为此插件有相同的问题,即订单详细信息只有在通过前端结帐时才在CRM平台中更新。
WooCommerce hook for order creation from admin
我的问题是我不是插件开发人员,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钩子可用于调用Admin创建的订单。
现在我的问题是,有没有人解决此问题,如果有任何帮助,我可以解决此问题。
谢谢, 乔塔姆