Предотвращение отображения дубликатов продуктов в шорткоде WordPress и запрос исправления кода.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Предотвращение отображения дубликатов продуктов в шорткоде WordPress и запрос исправления кода.

Сообщение Гость »


У меня есть вопрос вслед за моими предыдущими вопросами: проблема с случайным отображением функции короткого кода WordPress и вызовом нескольких переменных, интегрированных с HTML, в массивах PHP

Как я уже спрашивал в предыдущем вопросе, я хочу предотвратить появление дублированного содержимого короткого кода на моей странице с контентом (например, я могу использовать этот короткий код 5 раз в статье и не хочу, чтобы в этих статьях дублировался контент). 5 раз. И даже если бы у меня было всего 4 продукта и я использовал этот короткий код 5 раз, и на один продукт меньше, вместо отображения дублирующего продукта отображался бы альтернативный текст) и коды моего предыдущего вопроса были правильными, но теперь я хочу для интеграции значений продуктов в моем предыдущем коде и коде. То, что я написал ниже, неверно, потому что иногда отображаются дубликаты продуктов (я использую эти короткие коды в сообщениях WordPress)

Есть ли решение, которое не требует от меня повторения массивов внутри $values ​​несколько раз?!

функция get_product_id() { $args = массив( 'предел' => -1, 'статус' => 'опубликовать', 'return' => 'id', ); $all_products = wc_get_products($args); $key = array_rand($all_products); $products_id = $all_products[$key]; вернуть $products_id; } функция my_shortcode() { $products_id = get_product_id(); $product = wc_get_product($products_id); $product_price = $product->get_price(); $product_sale_price = $product->get_sale_price(); $product_regular_price = $product->get_regular_price(); if (isset($product_price) && $product_price > 0) { $product_price = числовой формат ($product_price); } if (isset($product_sale_price) && $product_sale_price > 0) { $product_sale_price = number_format($product_sale_price); } if (isset($product_regular_price) && $product_regular_price > 0) { $product_regular_price = number_format($product_regular_price); } $product_price_currency_symbol = get_woocommerce_currency_symbol(); $image_id = $product->get_image_id(); $product_image = wp_get_attachment_image_url($image_id, 'full'); $product_title = $product->get_title(); $product_link = $product->get_permalink(); $скидка = ''; если ($product->is_on_sale()) { $max_percentage = 0; $процент = 0; $price = $product->get_regular_price(); $продажа = $продукт->get_sale_price(); if ($цена!= 0 &&! пусто($распродажа)) { $процент = ($цена - $продажа) / $цена * 100; } если ($percentage > $max_percentage) { $max_percentage = $percentage; } если ($max_percentage 0) { $discount = '-' . круглый ($max_percentage) . '% Скидка'; } } еще { $product_regular_price = ''; } $значения = [ '1' => ' '. $скидка.' ' . $product_title. ' ', ]; if ( ! isset( $GLOBALS['my_shortcode_used'] )) { $GLOBALS['my_shortcode_used'] = []; } $post_id = get_the_ID(); if ( ! isset( $GLOBALS['my_shortcode_used'][ $post_id ] ) || ! is_array( $GLOBALS['my_shortcode_used'][ $post_id ] ) ) { $GLOBALS['my_shortcode_used'][ $post_id ] = []; } $unused_values ​​= array_diff($values, $GLOBALS['my_shortcode_used'][$post_id]); если (пусто ($ unused_values)) { $GLOBALS['my_shortcode_used'][ $post_id ] = []; $unused_values ​​= $values; } $key = array_rand($unused_values); $GLOBALS['my_shortcode_used'][ $post_id ][] = $unused_values[ $key ]; вернуть $unused_values[$key]; } add_shortcode('спортсмен', 'my_shortcode'); Являются ли написанные мной коды правильными и стандартными, если нет, то сообщите мне, в чем проблема и какие изменения мне следует внести

Заранее благодарим за ответ
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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