Woocommerce: скрыть кнопку «Добавить в корзину», если клиент уже приобрел этот продукт [дубликат]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Woocommerce: скрыть кнопку «Добавить в корзину», если клиент уже приобрел этот продукт [дубликат]

Сообщение Anonymous »

Я хотел бы скрыть кнопку «Добавить в корзину» на странице магазина, если Клиент уже приобрел этот продукт (во всех своих предыдущих заказах), в этом случае я хотел бы отобразить уведомление вместо кнопка. Я нашел этот скрипт здесь

Код: Выделить всё

add_shortcode( 'my_purchased_products', 'bbloomer_products_bought_by_curr_user' );

function bbloomer_products_bought_by_curr_user() {

// GET CURR USER
$current_user = wp_get_current_user();
if ( 0 == $current_user->ID ) return;

// GET USER ORDERS (COMPLETED + PROCESSING)
$customer_orders = get_posts( array(
'numberposts' => -1,
'meta_key'    => '_customer_user',
'meta_value'  => $current_user->ID,
'post_type'   => wc_get_order_types(),
'post_status' => array_keys( wc_get_is_paid_statuses() ),
) );

// LOOP THROUGH ORDERS AND GET PRODUCT IDS
if ( ! $customer_orders ) return;
$product_ids = array();
foreach ( $customer_orders as $customer_order ) {
$order = wc_get_order( $customer_order->ID );
$items = $order->get_items();
foreach ( $items as $item ) {
$product_id = $item->get_product_id();
$product_ids[] = $product_id;
}
}
$product_ids = array_unique( $product_ids );
$product_ids_str = implode( ",", $product_ids );

// PASS PRODUCT IDS TO PRODUCTS SHORTCODE
return do_shortcode("[products ids='$product_ids_str']");
Он работает нормально, собирает предыдущие продукты в $product_ids или $product_ids_str.
Теперь я хотел бы использовать это в цикле, определяя для каждого продукта, является ли его идентификатор частью массива $product_ids. Я добавил короткий код [my_purchased_products] на страницу магазина.
В скопированных файлах шаблонов archive-product.php или content-product.php я хотел бы использовать массив $product_ids. или, может быть, строка $product_ids_str, поэтому я изменил последнюю строку скрипта с

Код: Выделить всё

return do_shortcode("[products ids='$product_ids_str']");
в

Код: Выделить всё

return $product_ids;
или

Код: Выделить всё

return $product_ids_str;
Но хотя сценарий работает нормально, я не могу получить доступ к результатам, var_dump() возвращает NULL.
Что-то не так с тем, как я возвращаю $ Product_ids или $product_ids_str?
Или есть лучший способ добиться желаемого результата?
Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/637 ... -this-prod
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»