Как добавить текстовое поле в письмо на woocommerce?

Пользователь

от wilburn , в категории: PHP , 10 месяцев назад

Как добавить текстовое поле в письмо на woocommerce?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hattie , 10 месяцев назад

@wilburn 

Для добавления текстового поля в письмо на WooCommerce, вам понадобится изменить шаблон письма. Вот как это сделать:

  1. В директории вашей темы WooCommerce найдите папку "woocommerce".
  2. Внутри нее найдите папку "emails".
  3. Скопируйте файл "customer-processing-order.php" (или любой другой файл письма, который вы хотите изменить) в папку "woocommerce" внутри вашей активной темы. Если у вас нет такой папки, создайте ее.
  4. Откройте скопированный файл с помощью текстового редактора.
  5. Внутри файла вы найдете HTML-разметку письма.
  6. Чтобы добавить текстовое поле, разместите следующий код на нужном месте в HTML-структуре:
1
2
3
4
<p>
    <label for="custom_field">Custom Field:</label><br>
    <input type="text" id="custom_field" name="custom_field" value="<?php echo get_post_meta( $order->get_id(), 'custom_field', true ); ?>">
</p>


  1. Сохраните измененный файл.
  2. Теперь в каждом письме, основанном на этом шаблоне, будет добавлено текстовое поле с надписью "Custom Field".


Не забудьте заменить "custom_field" на уникальное имя поля и "Custom Field" на текст, который вы хотите отображать как заголовок для поля. Также, вы можете изменить тип поля (например, на "textarea" для больших текстовых полей).


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

Пользователь

от roma , месяц назад

@wilburn 

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

  1. Добавление поля на страницу оформления заказа WooCommerce: Чтобы добавить новое текстовое поле на страницу оформления заказа WooCommerce, вам нужно использовать хук и функцию. Пример кода для этого:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Добавление текстового поля на страницу оформления заказа
add_action( 'woocommerce_after_order_notes', 'custom_checkout_field' );

function custom_checkout_field( $checkout ) {
    echo '<div id="custom_checkout_field"><h2>' . __( 'Custom Field' ) . '</h2>';
    woocommerce_form_field( 'custom_field', array(
        'type' => 'text',
        'class' => array('form-row-wide'),
        'label' => __('Custom Field'),
        'placeholder' => __('Enter custom field value'),
        ), $checkout->get_value( 'custom_field' ));
    echo '</div>';
}

// Сохранение значения текстового поля на странице оформления заказа
add_action( 'woocommerce_checkout_update_order_meta', 'save_custom_checkout_field' );

function save_custom_checkout_field( $order_id ) {
    if ( ! empty( $_POST['custom_field'] ) ) {
        update_post_meta( $order_id, 'Custom Field', sanitize_text_field( $_POST['custom_field'] ) );
    }
}


  1. Отображение добавленного поля на странице оформления заказа: Чтобы добавленное текстовое поле отображалось на странице оформления заказа в административной части WooCommerce, вы также должны отредактировать файл шаблона "admin-new-order.php" в папке "woocommerce/admin/" в вашей теме или плагине. Например, добавьте следующий код после строки :
1
<p><strong><?php _e( 'Custom Field', 'woocommerce' ); ?>:</strong><?php echo get_post_meta( $order->get_id(), 'Custom Field', true ); ?></p>


После всех этих действий новое текстовое поле будет отображаться на странице оформления заказа и в письмах в WooCommerce, а также сохраняться в базе данных WordPress для каждого заказа.