Скрипт отслеживания конверсий WooCommerce для двух пикселей

Я хочу продвигать свои продукты через некоторые партнерские сети.

Единственное, что вам нужно сделать, это зайти в файл function.php и добавить этот скрипт с пикселем. С этим скриптом отслеживание значения суммы работает нормально. Этот сценарий работает только для одной сети и если вы являетесь единственным поставщиком.

add_action( 'woocommerce_thankyou', 'my_custom_tracking' );
function my_custom_tracking( $order_id ) {
  $order = new WC_Order( $order_id );
  $total = $order->get_subtotal();
  $id = str_replace('#', '', $order->get_order_number());
  echo '<iframe src="https://network.com/track?offer_id=666&amount=' . $total . '&track_id=' . $id . '" scrolling="no" frameborder="0" width="1" height="1"></iframe>';
}

Моя проблема: у меня есть несколько поставщиков, которые используют мою платформу для доставки/обработки покупки продуктов.

Мне нужно знать, как я могу изменить файл функции, чтобы добавить рабочий второй скрипт для 2-го пикселя, если был выбран и куплен конкретный продукт.

Мои навыки работы с woocommerce ограничены, поэтому я хотел бы понять, как изменить скрипт, не нанося вреда (общему) отслеживанию.

  1. Если кто-то покупает «обычные» продукты, должен сработать первый пиксель выше.
  2. Если кто-то покупает конкретный продукт с идентификатором продукта 2004, то должны сработать два разных пикселя и проигнорировать первый пиксель.

Мне нужно добавить вторую функцию или изменить первую?

Спасибо

Дополнительные вопросы (обновление от 16 мая 2017 г.)

В будущем мне, вероятно, придется установить третий пиксель. Какой будет структура?

add_action('woocommerce_thankyou', 'wh_custom_tracking');

function wh_custom_tracking($order_id)
{
    $product_ids = [2004, 2000]; //<-- list of product_id(s) for which 2nd pixels should fire
    $checkSecond = FALSE;
    $product_ids = [2003, 2001]; //<-- list of product_id(s) for which 3nd pixels should fire
 $checkThird = FALSE;
    $order = wc_get_order($order_id);
    $total = $order->get_subtotal();
    $id = str_replace('#', '', $order->get_order_number());

    $items = $order->get_items();

    foreach ($items as $item)
    {
        $item_id = $item['product_id']; // <= Here is your product ID
        if (in_array($item_id, $product_ids))

        {
            $checkSecond = TRUE;
            break;
        }

 {
            $checkThird = TRUE;
            break;
        }
    }

    if ($checkSecond)
    {
        //add your 2nd pixel here 2nd pixel
    }
    else

    if ($checkThird)
    {
        //add your 3nd pixel here 2nd pixel
    }
    else
    {
        echo '<iframe src="https://network.com/track?offer_id=666&amount=' . $total . '&track_id=' . $id . '" scrolling="no" frameborder="0" width="1" height="1"></iframe>';
    }
}

Подходит ли та же структура для идентификаторов вариантов?

В партнерском программном обеспечении в рамках предложения могут использоваться "Целевой пиксель" и "конечный пиксель".

Некоторые продукты являются «тестовыми продуктами» и имеют стоимость 0,00 евро. Если основной пиксель срабатывает, партнер не получает компенсацию, даже если клиент впоследствии покупает продукт.

В этом случае необходимо установить своего рода целевой пиксель для идентификатора варианта конкретного продукта. Если клиент после тестового месяца примет решение о покупке, то должен сработать «правильный пиксель».


person reich    schedule 15.05.2017    source источник
comment
что такое Product_Nr. 2004 это атрибут продукта или что?   -  person Raunak Gupta    schedule 16.05.2017
comment
Спасибо за ответ. Product ID 2004 — это просто ID продукта в WooCommerce. Я обновлю это в своем посте.   -  person reich    schedule 16.05.2017


Ответы (1)


Вы можете получить список идентификаторов продуктов по идентификатору заказа, а затем применить свои условия и активировать другой пиксель.

Вот пример кода, который должен решить ваш запрос:

add_action('woocommerce_thankyou', 'wh_custom_tracking');

function wh_custom_tracking($order_id)
{
    $product_ids = [2004, 2000]; //<-- list of product_id(s) for which 2nd pixels should fire
    $checkSecond = FALSE;
    $order = wc_get_order($order_id);
    $total = $order->get_subtotal();
    $id = str_replace('#', '', $order->get_order_number());

    $items = $order->get_items();

    foreach ($items as $item)
    {
        $item_id = $item['product_id']; // <= Here is your product ID
        if (in_array($item_id, $product_ids))
        {
            $checkSecond = TRUE;
            break;
        }
    }

    if ($checkSecond)
    {
        //add your 2nd pixel here 2nd pixel
    }
    else
    {
        echo '<iframe src="https://network.com/track?offer_id=666&amount=' . $total . '&track_id=' . $id . '" scrolling="no" frameborder="0" width="1" height="1"></iframe>';
    }
}

Код помещается в файл functions.php вашей активной дочерней темы (или темы). Или также в любых файлах php плагина.

Связанный вопрос: Как вставить JS-код Google Merchant Review на страницу завершения заказа WooCommerce

Надеюсь это поможет!

person Raunak Gupta    schedule 16.05.2017
comment
Я добавил больше вопросов выше. - person reich; 16.05.2017