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

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

Сообщение Anonymous »

У меня есть следующий код, который добавляет настраиваемое поле для оформления заказа для определенного продукта, добавляет его на страницу нового заказа и отправляет его в электронном письме о новом заказе.

Код: Выделить всё

add_action( 'woocommerce_after_checkout_billing_form', 'my_custom_checkout_field', 10, 1 );
function my_custom_checkout_field( $checkout ) {

$targeted_product_id = 6270; //Global Membership ID

foreach( WC()->cart->get_cart() as $item ){
if ( ! in_array($targeted_product_id, [$item['product_id'], $item['variation_id']]) ) {
return; // Exit if there are other products in cart that the targeted one.
}
}

echo '
' . __('Please select your Delivery Partner') . '';

woocommerce_form_field( 'delivery_partner', array(
'type'          => 'select',
'required'  => 'true',
'options'     => array(
'---Please select your Delivery Partner' => __('---Please select your Delivery Partner', 'woocommerce' ),
'Learners University College (LUC), Dubai' => __('Learners University College (LUC), Dubai', 'woocommerce' ),
'Elite Training Services (ECS), KSA' => __('Elite Training Services (ECS), KSA ', 'woocommerce' ),
'MELI, KSA' => __('MELI, KSA', 'woocommerce' ),
'KLD Management Training, Dubai' => __('KLD Management Training, Dubai', 'woocommerce' )),
'class'         => array('my-field-class form-row-wide'),
'label'         => __('Delivery Partner'),
), $checkout->get_value( 'delivery_partner' ));

echo '';
}

// Save the dropdown custom field selected value as order custom meta data:
add_action( 'woocommerce_checkout_create_order', 'my_custom_checkout_field_update_order_meta', 10, 2 );
function my_custom_checkout_field_update_order_meta( $order, $data ) {
if ( isset($_POST['delivery_partner']) && ! empty($_POST['delivery_partner']) ) {
$order->update_meta_data( 'Delivery Partner', sanitize_text_field( $_POST['delivery_partner'] ) );
}
}

// Display the custom field value on admin order pages after billing adress:
add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 );
function my_custom_checkout_field_display_admin_order_meta( $order ) {
echo '
[b]'.__('Delivery Partner').':[/b] ' . $order->get_meta('Delivery Partner') . '
';
}

// Display the custom field value on "New Order" notification:
add_action( 'woocommerce_email_after_order_table', 'custom_woocommerce_email_order_meta_fields', 10, 4 );
function custom_woocommerce_email_order_meta_fields( $order, $sent_to_admin, $plain_text, $email ) {
if( 'new_order' === $email->id )
echo '
[b]'.__('delivery_partner').':[/b] ' . $order->get_meta('Delivery Partner') . '
';
}
Мне нужно добавить его на страницу «Спасибо за ваш заказ» после оплаты, поскольку в настоящее время он не работает.

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

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

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

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

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

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

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