Как отобразить данные записей Gravity Forms в портале аффилиатов AffiliateWP

Вопрос или проблема

Вопрос: Я использую WordPress с AffiliateWP и Gravity Forms на своем сайте. Я настроил форму с помощью Gravity Forms, где аффилиаты могут направлять клиентов заполнять заявку через свою уникальную реферальную ссылку. Этот процесс работает, как и ожидалось, с отслеживанием отправок формы, и рефералы отображаются в таблице рефералов AffiliateWP.

Проблема: В настоящее время в Портале аффилиатов AffiliateWP (с использованием расширения Портала аффилиатов AffiliateWP) аффилиаты могут видеть только ID реферала, Сумму, Описание, Статус и Дату в своей таблице “Рефералы”. Однако они не могут просмотреть конкретные данные о клиенте, который заполнил форму, такие как имя клиента и контактный номер.

Результаты: После реализации этого кода:

Поля не отображаются в портале аффилиата под “Рефералы”. Я проверил ID реферала и подтвердил, что он соответствует ID записи Gravity Forms. Данные клиента доступны в административной панели, но они все еще не отображаются для аффилиатов.

В административной панели под AffiliateWP > Рефералы я могу видеть эти данные, когда нажимаю на каждый реферал. Я хотел бы отображать имя клиента и номер телефона (вместе с другими деталями, если это возможно) непосредственно в портале аффилиатов, чтобы аффилиаты могли легко видеть, кого они направили.

Что я пробовал: Я добавил следующий код в functions.php, чтобы попытаться получить и отобразить эти поля:

// Подключение к AffiliateWP для добавления данных записи Gravity Forms в таблицу рефералов портала аффилиатов.
add_filter('affwp_referral_table_rows', 'custom_affiliatewp_display_gravity_forms_data', 10, 3);

function custom_affiliatewp_display_gravity_forms_data($rows, $referral, $affiliate_id) {
    // Проверка, есть ли у реферала ID записи Gravity Forms
    if (empty($referral->reference)) {
        return $rows;
    }

    // Получение ID записи Gravity Forms из поля ссылки реферала
    $entry_id = $referral->reference;
    $form_id = 1; // ID формы

    // Загрузка данных записи Gravity Forms
    $entry = GFAPI::get_entry($entry_id);
    if (is_wp_error($entry)) {
        return $rows; // Остановить, если запись не найдена
    }

    // Определение полей для отображения
    $customer_name = isset($entry['5']) ? esc_html($entry['5']) : 'Имя не найдено'; // ID поля имени
    $customer_contact = isset($entry['7']) ? esc_html($entry['7']) : 'Контакт не найден'; // ID поля номера телефона

    // Добавление новых строк для данных клиента в таблицу рефералов
    $rows[] = array(
        'label' => __('Имя клиента', 'affiliatewp'),
        'value' => $customer_name
    );
    $rows[] = array(
        'label' => __('Контакт клиента', 'affiliatewp'),
        'value' => $customer_contact
    );

    return $rows;
}

Есть ли что-то, что я пропустил в коде, или конкретные разрешения, которые нужно установить, чтобы портал аффилиатов отображал эти данные? Я открыт к решению с помощью пользовательского кода или рекомендации плагина, если это поможет решить эту проблему. Буду очень признателен за любую помощь или советы!

Ответ или решение

Как отобразить данные записи Gravity Forms в портале партнеров AffiliateWP

Ваша задача — обеспечить отображение подробной информации о клиентах, которые заполнили форму Gravity Forms, в портале партнеров AffiliateWP. Это действительно важно для ваших партнеров, чтобы они могли легко отслеживать своих рефералов и эффективно управлять своими кампаниями. Давайте представим решение этой проблемы более детально.

Понимание текущей проблемы

Вы уже настроили систему, и записи о рефералах отображаются в таблице отчетов для партнеров, однако конкретные детали о клиентах, такие как имя и номер телефона, не выводятся. Код, который вы добавили в functions.php, должен работать, но может потребоваться дополнительная отладка или уточнение.

Анализ кода и предложенные изменения

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

  1. Проверка идентификатором формы: Убедитесь, что переменная $form_id соответствует фактическому ID вашей формы, так как вся информация о клиенте будет извлекаться из записи, связанной с этой формой.

  2. Корректное использование ключей записи: Убедитесь, что ID полей, используемых для извлечения имени и номера телефона, соответствуют тем, что определены в вашей форме Gravity Forms.

  3. Вывод данных в таблице рефералов: Попробуем немного изменить логику отображения данных.

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

// Подключение к AffiliateWP для добавления данных записи Gravity Forms в таблицу рефералов портала партнеров
add_filter('affwp_referral_table_rows', 'custom_affiliatewp_display_gravity_forms_data', 10, 3);

function custom_affiliatewp_display_gravity_forms_data($rows, $referral, $affiliate_id) {
    // Убедимся, что у реферала есть идентификатор записи Gravity Forms
    if (empty($referral->reference)) {
        return $rows;
    }

    // Извлечение идентификатора записи Gravity Forms
    $entry_id = $referral->reference;

    // Получение данных записи Gravity Forms
    $entry = GFAPI::get_entry($entry_id);
    if (is_wp_error($entry) || empty($entry)) {
        return $rows; // Прекращаем выполнение, если запись не найдена
    }

    // Извлечение необходимых полей
    $customer_name = isset($entry[5]) ? esc_html($entry[5]) : __('No Name Found', 'affiliatewp'); // ID поля имени
    $customer_contact = isset($entry[7]) ? esc_html($entry[7]) : __('No Contact Found', 'affiliatewp'); // ID поля телефона

    // Добавление новых строк с деталями клиента в таблицу рефералов
    $rows[] = array(
        'label' => __('Customer Name', 'affiliatewp'),
        'value' => $customer_name
    );
    $rows[] = array(
        'label' => __('Customer Contact', 'affiliatewp'),
        'value' => $customer_contact
    );

    return $rows;
}

Объяснение изменений

  • Проверка на ошибки: Проверьте, получена ли запись и нет ли ошибок при вызове GFAPI::get_entry().
  • Поля формы: Замените числа 5 и 7 на реальные идентификаторы полей вашего Gravity Forms, если они отличаются.
  • Чистота кода: Убедитесь, что используется правильный синтаксис PHP. Измените > на >, если вы копируете и вставляете код напрямую.

Дополнительные рекомендации

  • Пермишн: Убедитесь, что ваши партнеры имеют соответствующие права для просмотра всех данных в портале.
  • Логи и отладка: При помощи инструментов отладки в WordPress проверьте, правильно ли выполняется код. Логи ошибок могут помочь обнаружить проблемы.

Заключение

С помощью представленных решений вы сможете отображать рабочие данные о клиентах в портале партнеров AffiliateWP. Это позволит вашим партнерам получить более детальную информацию и усилить взаимодействие с их рефералами, что в конечном итоге повысит продуктивность. Каждый шаг требует точного выполнения, поэтому учитывайте детали кода и проводите тестирование после внедрения. Вы всегда можете обратиться к сообществу WordPress или поддержке Gravity Forms для получения дополнительной помощи.

Оцените материал
Добавить комментарий

Капча загружается...