Вопрос или проблема
У нас много продуктов на нашем WooCommerce, и мы пытаемся автоматизировать некоторые вещи.
Все наши продукты со скидкой 20%, если вы используете наш специальный промо-код.
Так что вверху каждой страницы с продуктом есть предложение, которое гласит: “Получите этот продукт за (цена -20%) с (Промо-код)”.
Я хотел бы создать функцию, которая получает цену продукта и вычитает из нее 20%. Отображая в предложении, где мы можем обновить промо-код, обновив одну функцию.
Есть идеи, как лучше всего это сделать? Я не хочу использовать плагины.
Спасибо за любую помощь!
Предполагая, что вы вставите это в файл шаблона WooCommerce, где бы вы ни хотели это отобразить:
<?php
global $product;
$regular_price = esc_attr( $product->get_display_price() );
$discount = 20;
$currency = esc_attr( get_woocommerce_currency() );
$new_price = ($regular_price * $discount) / 100;
echo 'Получите этот продукт за '.$new_price.$currency.' с (Промо-код)';
?>
Не тестировалось, но должно сработать.
В зависимости от того, от чего вы берете процент (до налога, после налога и т.д.)
вам нужно это код:
<?php
$reg_price = esc_attr( $product->get_display_price() );
$sale_price = .8 * $reg_price;
$echo 'Сейчас со скидкой ' . $sale_price . ' с промо-кодом!';
?>
поместите это на страницу товара, где хотите.
Ответ или решение
Чтобы отобразить текст с указанием цены (минус 20%) на каждой странице продукта в WooCommerce, необходимо создать функцию, использующую PHP-код. Эта функция будет автоматически рассчитывать и показывать скидку, что позволит вам удобно управлять и обновлять промокод в одном месте. Вот как можно это реализовать:
Шаги по созданию функции:
- Определение ценовой логики: Мы будем использовать стандартные методы WooCommerce, чтобы получить цену продукта и рассчитать ее со скидкой в 20%.
- Гибкость в использовании промокода: Мы создадим переменную для промокода, чтобы вы могли менять ее в одном месте, и это сразу будет применимо на всех страницах.
- Отображение информации: В конце мы сформируем предложение, которое будет выводить конечную цену со скидкой и промокод.
Пример кода:
<?php
function display_discounted_price_with_promo_code() {
global $product;
// Получаем полную цену продукта
$regular_price = esc_attr( $product->get_display_price() );
// Вычисляем цену со скидкой 20%
$discounted_price = $regular_price * 0.8;
// Настраиваем промокод
$promo_code = 'YOUR_PROMO_CODE_HERE'; // Замените на ваш действующий промокод
// Получаем валюту
$currency = esc_attr( get_woocommerce_currency_symbol() );
// Формируем сообщение
echo 'Получите этот продукт за ' . number_format($discounted_price, 2) . ' ' . $currency . ' с промокодом ' . $promo_code . '.';
}
// Вызовите эту функцию в шабле вашего продукта, где хотите отобразить текст
display_discounted_price_with_promo_code();
?>
Объяснение кода:
- $product: Мы используем глобальную переменную
$product
, чтобы получить доступ к информации о текущем продукте. - get_display_price(): Этот метод возвращает отображаемую цену продукта. Мы применяем
esc_attr()
для обеспечения корректности вывода. - Цена со скидкой: Рассчитывается путем умножения оригинальной цены на 0.8, что соответствует 80% от оригинальной стоимости (что подразумевает 20% скидку).
- Форматирование: Используем
number_format()
для вывода цены с двумя знаками после запятой для лучшей читабельности. - Промокод: Замените
YOUR_PROMO_CODE_HERE
на ваш актуальный промокод.
Где вставлять код:
Этот код следует вставить в шаблон вашей страницы продукта, например, в файл single-product.php
, или в файл, отвечающий за отображение информации о продукте.
Заключение
Таким образом, благодаря такому подходу вы сможете легко отслеживать и обновлять информацию о скидках и промокодах, избегая необходимости использовать дополнительные плагины. Это не только упростит управление вашим магазином, но и улучшит пользовательский опыт посетителей, предоставляя им актуальную информацию о скидках.