2016-12-30 3 views
2

Возможно ли автоматическое копирование значения настраиваемого поля Заказчика в пользовательское поле заказа, когда этот заказчик разместит заказ?Автоматическое добавление пользовательского поля в метаданные заказа

Должно ли это быть сделано с использованием любого плагина/расширения или через индивидуальное кодирование за кулисами?

Это настраиваемое поле не обязательно должно отображаться на экране заказа клиента. Нам просто нужно это, чтобы отличить, был ли заказ поставлен Потребителем или Оптом, когда мы получаем его через API.

Я совершенно новый в этой системе, я провел много исследований, но не смог найти никакого направления для этого.

Любые советы/предложения были бы очень оценены.

+0

спасибо для вашего быстрого ответа, @LoicTheAztec! Я только что редактировал вопрос, надеюсь, это имеет смысл для вас. – Zark

+0

спасибо большое, @LoicTheAztec это очень хороший фрагмент кода. Я отметил это как ответ. Я попробую и дам вам знать, если я где-нибудь застрял :) – Zark

ответ

2

Вы можете использовать woocommerce_thankyou крюк, чтобы добавить эти пользовательские данные в мета-данные для заказа:

add_action('woocommerce_thankyou', 'orders_from_processing_to_pending', 10, 1); 
function orders_from_processing_to_pending($order_id) { 

    if (! $order_id) 
     return; 

    $order = wc_get_order($order_id); 
    $user_id = get_current_user_id(); 

    //Set HERE the meta key of your custom user field 
    $user_meta_key = 'some_meta_key'; 

    // Get here the user custom field (meta data) value 
    $user_meta_value = get_user_meta($user_id, $user_meta_key, true); 


    if (! empty($user_meta_value)) 
     update_post_meta($order_id, $user_meta_key, $user_meta_value); 
    else 
     return; 

} 

код идет в function.php файл вашей активной темы ребенка (активная тема или в любом файле плагина).

Этот код проверен и работает.

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

Смежные вопросы