Экспортировать пользовательское поле оформления заказа WooCommerce в пользовательское поле 2 ShipStation

#php #wordpress #woocommerce

#php #wordpress #woocommerce

Вопрос:

Я пытаюсь экспортировать пользовательское поле из моего оформления заказа в пользовательское поле 2 в ShipStation, но данные не попадают в пользовательское поле 2. Возможно, я использую неправильную мету в своем коде?

Я скопировал вырезанный с сайта корабельных станций фрагмент, который я должен добавить в свой functions.php

 // Add this code to your theme functions.php file or a custom plugin
add_filter( 'woocommerce_shipstation_export_custom_field_2', 'shipstation_custom_field_2' );

function shipstation_custom_field_2() {
    return '_meta_key'; // Replace this with the key of your custom field
}

// This is for custom field 3
add_filter( 'woocommerce_shipstation_export_custom_field_3', 'shipstation_custom_field_3' );

function shipstation_custom_field_3() {
    return '_meta_key_2'; // Replace this with the key of your custom field
}
  

Для сайта, над которым я работаю, у меня есть настраиваемое поле оформления заказа в моем оформлении заказа для опций, отсутствующих на складе. Я заменил ‘_meta_key_2’ метой для опции «outofstockoption» для клиентов, которых нет в наличии

 function my_custom_checkout_field_update_order_meta( $order_id ) {
    if ( ! empty( $_POST['outofstockoption'] ) ) {
        update_post_meta( $order_id, 'Out of Stock Option', sanitize_text_field( $_POST['outofstockoption'] ) );
    }
}

// Add this code to your theme functions.php file or a custom plugin
add_filter( 'woocommerce_shipstation_export_custom_field_2', 'shipstation_custom_field_2' );

function shipstation_custom_field_2() {
    return 'outofstockoption'; // Replace this with the key of your custom field
}
  

Я надеюсь, что кто-нибудь сможет направить меня в правильном направлении о том, как заставить ShipStation извлечь параметр outofstockoption и поместить это в пользовательское поле ShipStation. Заранее спасибо.

Ответ №1:

В вашей строке —

 update_post_meta( $order_id, 'Out of Stock Option', sanitize_text_field( $_POST['outofstockoption'] ) );
  

вы назначаете _meta_key как «Нет в наличии». Чтобы использовать это как мета-ключ и отправить его на ShipStation, обновите свою функцию до —

 function shipstation_custom_field_2() {
    return 'Out of Stock Option'; 
}