Поддержка WooCommerce Создать и записать значение доп. поля кодом

  • Решено shuttap

    (@shuttap)


    Здравствуйте.
    Кодом нужно пройтись по заказам и добавить к ним дополнительное поле с определенным значением.
    Как это можно сделать?
    Чтобы потом это поле было видно в админке, можно было его редактировать.

    И как потом добавить это поле в письмо пользователю, которое отправляется при смене статуса заказа на определенный статус?

    Пробую так:
    в цикле проставляю заказам значения
    update_post_meta( $order_id, 'delivery_myfield', sanitize_text_field( 'значение' ) );

    но так не срабатывает…

    Вывод в админку:

    add_action( 'woocommerce_admin_order_data_after_shipping_address', 'custom_field_display_admin_order_meta', 10, 1 );
    
    function custom_field_display_admin_order_meta($order){
        echo '<strong>'.__('Тестовое поле').':</strong> ' . get_post_meta( $order->id, 'delivery_myfield', true ) . '
    ';
    }

    Но мне нужно в определенное место, так понимаю, это зависит от woocommerce_admin_order_data_after_shipping_address, а можно посмотреть весь список вариантов где-то?

    Вывод поля в письме:

    add_filter('woocommerce_email_order_meta_keys', 'email_checkout_field_order_meta_keys');
    
    function email_checkout_field_order_meta_keys( $keys ) {
    $keys['Тестовое поле'] = 'delivery_myfield';
    return $keys;
    }

    Но опять вопрос — как вывести в определенное место, и по событию на смену статуса заказа на определенный?

Просмотр 1 ответа (всего 1)
  • В итоге проставление свойств всё-таки работало, почему-то не сразу отображаться начали, отображение в списке заказов не понадобилось, а в просмотре заказа и так отобразились.

    Отправку писем сделал по событию смены статуса заказа woocommerce_order_status_changed

Просмотр 1 ответа (всего 1)