Показать информацию о продукте в настраиваемом поле на странице оформления заказа WooCommerce - PullRequest
0 голосов
/ 27 октября 2019

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

add_filter( 'woocommerce_get_item_data', 'display_custom_product_field_data', 10, 2 );
function display_custom_product_field_data( $cart_data, $cart_item ) {

    // Define HERE your product custom field meta key  <==   <==   <==   <==   <==
    $meta_key = 'custom_time';

    $product_id = $cart_item['product_id'];

    $meta_value = get_post_meta( $product_id, $meta_key, true );

    if( !empty( $cart_data ) )
        $custom_items = $cart_data;

    if( !empty($meta_value) ) {
        $custom_items[] = array(
            'key'       => __('Time', 'woocommerce'),
            'value'     => $meta_value,
            'display'   => $meta_value,
        );
    }
    return $custom_items;
}

1 Ответ

0 голосов
/ 27 октября 2019

вы можете определить $ meta_keys как массив

$meta_keys = array('custom_time','custom_time2'); // or more than tow 

и другое поле

$ dictionary = array ('custom_time' => 'Time', 'custom_time2' => 'Date')

$product_id = $cart_item['product_id'];

foreach($meta_keys as $key=>$meta_key){

$meta_value = get_post_meta( $product_id, $meta_key, true );

if( !empty( $cart_data ) )
    $custom_items = $cart_data;

if( !empty($meta_value) ) {
    $custom_items[] = array(
        'key'       => __( $dictionary[$meta_key] , 'woocommerce'), //or user $meta_key
        'value'     => $meta_value,
        'display'   => $meta_value,
    );
}
}
return $custom_items;
...