Получить заказ метаданных для платежного шлюза PayTrace в Woocommerce 3 - PullRequest
0 голосов
/ 28 июня 2018

Я установил 3 пользовательских поля оформления заказа с помощью плагина WooCommerce «Редактор полей оформления заказа». Я установил его так, чтобы поля отображались в электронных письмах и на экране заказа, но мне нужно, чтобы информация в этих полях также отправлялась в обработчик платежей, которым является PayTrace. Поговорив с разработчиком плагина PayTrace, у меня есть код (ссылка ниже) для добавления дополнительной информации о заказе, которая отправляется в PayTrace, но я не уверен, как правильно и безопасно получить данные поля настраиваемого извлечения, чтобы их потом можно было включить.

Код для добавления дополнительных данных в информацию, отправляемую в PayTrace. https://gist.github.com/vanbo/dc3d9bc8660a7de33aafb44dde3033fa

1 Ответ

0 голосов
/ 29 июня 2018

Как правило, метаданные Woocommerce Order всегда всегда начинаются с символа с подчеркивания . Например, имя для выставления счета meta_key будет _billing_first_name.

По этой причине вам необходимо сначала проверить таблицу wp_postmeta для последнего заказа Woocommerce (post_id, который является идентификатором заказа), чтобы получить правильные необходимые мета-ключи что вы будете использовать в следующем коде.

Допустим, ваши мета-ключи:

  • _event_code для Код события
  • _event_date для Дата события
  • _event_name для Название события

После этого вы получите и установите эти данные в следующем коде, например:

add_filter( 'wc_paytrace_transaction_request', 'custom_data_paytrace_transaction_request', 10, 5 );
function prefix_filter_paytrace_transaction_request( $request_parameters, $order, $amount, $is_subscription, $is_paid_with_profile ) {
    $event_code = $order->get_meta( '_event_code', true );
    if( ! empty($event_code) )
        $request_parameters['event_code'] = $event_code;

    $event_date = $order->get_meta( '_event_date', true );
    if( ! empty($event_date) )
        $request_parameters['event_date'] = $event_date;

    $event_name = $order->get_meta( '_event_name', true );
    if( ! empty($event_name) )
        $request_parameters['event_name'] = $event_name;

    return $request_parameters;
}

Вам необходимо убедиться, что ключи массива для $request_parameters являются правильными для использования.

Код помещается в файл function.php активной дочерней темы (или активной темы). Должно работать.

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