Отображение значений пользовательских полей оформления заказа WooCommerce в заказах и уведомлениях по электронной почте.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Отображение значений пользовательских полей оформления заказа WooCommerce в заказах и уведомлениях по электронной почте.

Сообщение Anonymous »

У меня есть несколько пользовательских полей проверки WooCommerce в виде раскрывающихся меню. Я хочу, чтобы любые параметры, выбранные в этих раскрывающихся списках, отображались в деталях заказа на стороне администратора, а также в электронных письмах о заказе. Однако я не могу заставить это работать. Все, что выбрано в раскрывающихся списках, не отображается в электронных письмах или на стороне администратора в деталях заказа, чего я и хочу.
Я хочу сохранить информацию из раскрывающихся списков в заказать метаданные, и именно этого я хочу добиться с помощью своего кода. Работает создание раскрывающихся списков, а также изменение общей суммы заказа в зависимости от того, выбрана ли служба доставки. Если выбран вариант «Самовывоз», появляется второй раскрывающийся список, который позволяет клиенту выбрать место получения. Информация из обоих этих раскрывающихся списков должна отображаться в сведениях о заказе на стороне администратора, а также во всех электронных письмах о заказе, в которых отображаются сведения о заказе.
Я пытался использовать woocommerce_checkout_create_order, чтобы сохранить _delivery_or_pickup и _pickup_location непосредственно в мета-заказ во время создания заказа, а затем используйте woocommerce_admin_order_data_after_order_details для наиболее единообразного отображения в панели администратора WooCommerce. Хук woocommerce_email_order_meta предназначен для отображения настраиваемых полей как в электронных письмах администратора, так и в электронных письмах клиентов.
Мой код выглядит следующим образом:
// Add custom fields to the checkout page
add_action('woocommerce_before_order_notes', 'add_delivery_or_pickup_fields');

function add_delivery_or_pickup_fields($checkout) {
// First dropdown for Delivery or Pickup
woocommerce_form_field('delivery_or_pickup', array(
'type' => 'select',
'class' => array('form-row-wide'),
'label' => __('Delivery or Pickup?', 'woocommerce'),
'required' => true,
'options' => array(
'' => __('Select an option', 'woocommerce'),
'delivery' => __('Delivery Service', 'woocommerce'),
'pickup' => __('Pickup', 'woocommerce')
),
), $checkout->get_value('delivery_or_pickup'));

// Second dropdown for pickup location (initially hidden, shown via JavaScript)
woocommerce_form_field('pickup_location', array(
'type' => 'select',
'class' => array('form-row-wide', 'pickup-location-field'), // 'pickup-location-field' class used to control visibility
'label' => __('Select pickup location:', 'woocommerce'),
'options' => array(
'' => __('Select a location', 'woocommerce'),
'main_office' => __('Pavia 20F - Main Office', 'woocommerce'),
'kaminis_kitchen' => __('Kamini\'s Kitchen (Baby Beach)', 'woocommerce')
),
), $checkout->get_value('pickup_location'));

// JavaScript to toggle visibility of the pickup location dropdown and update delivery fee
?>

jQuery(document).ready(function($) {
$('.pickup-location-field').hide();

$('#delivery_or_pickup').change(function() {
if ($(this).val() === 'pickup') {
$('.pickup-location-field').show();
} else {
$('.pickup-location-field').hide();
}

var deliveryOrPickup = $(this).val();
$.ajax({
type: 'POST',
url: wc_checkout_params.ajax_url,
data: {
action: 'save_delivery_or_pickup_to_session',
delivery_or_pickup: deliveryOrPickup,
},
success: function() {
$('body').trigger('update_checkout');
}
});
}).change();
});



Подробнее здесь: https://stackoverflow.com/questions/791 ... otificatio
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»