ACF, разместить объект в корзине woocommerce - PullRequest
0 голосов
/ 03 декабря 2018

Надеюсь, это глупый вопрос, но я не могу найти разумного решения в данный момент.

У меня есть настраиваемое поле на странице продуктов - это поле Отношения - и я 'Я хотел бы отобразить поле моего RF для каждого продукта на странице моей корзины.

Более конкретно: у меня есть продукт, связанный с брендом.У бренда есть поле «время доставки».

В данный момент моя функция частично работает, в том смысле, что она отображает значение запроса, но ТОЛЬКО для первого товара в корзине.Это мой код в function.php

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

$custom_shipping = array();

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

// Get the product ID
$product_id = $cart_item['product_id'];
$custom_field_value = get_post_meta( $product_id, 'brand_select', true );
$display_brand_shipping = get_field('shipping_time_brand', $custom_field_value); 

if( $custom_field_value = get_post_meta( $product_id, 'brand_select', true ) )
    $custom_shipping[] = array(
        'name'      => __( 'Shipping', 'woocommerce' ),
        'value'     => $display_brand_shipping,
        'display'   => $display_brand_shipping,
    );

return $custom_shipping; }

Не могли бы вы мне помочь?

1 Ответ

0 голосов
/ 03 декабря 2018

Ваш код не тестируется, так как невозможно воспроизвести проблему, связанную с настраиваемым полем продукта и полями ACF, но его можно упростить следующим образом:

add_filter( 'woocommerce_get_item_data', 'wc_add_shipping_to_cart', 10, 2 );
function wc_add_shipping_to_cart( $cart_item_data, $cart_item ) 
{ 
    if( $brand_select = get_post_meta( $cart_item['product_id'], 'brand_select', true ) ) {
        if( $shipping_time = get_field('shipping_time_brand', $brand_select ) ) {
            $cart_item_data[] = array(
                'name'      => __( 'Shipping', 'woocommerce' ),
                'value'     => $shipping_time,
            );
        }
    }
    return $cart_item_data;
}

Код помещается в файл function.phpваша активная детская тема (или активная тема).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...