Здравствуйте!
Прошу помочь с выводом цены определенного тарифного плана (и его цены со скидкой, если она есть) и размера скидки в определенном месте сайта.
На сайте есть каталог товаров, который содержит описание и цены тарифного плана и есть контент который закрывается плагином WP Access Ultimate. Нужно вывести цену для определенного тарифа в определенной карточке товара, а также если есть скидка на продление, то указывается первоначальная цена как зачеркнутая и рядом цена со скидкой. Т.е. по сути как это реализовано в карточке товара WP Access Ultimate. Также если есть скидка, то строчкой ниже указывается например: Ваша скидка на подписку 5% или 10% или 15%, в зависимости от того какую скидку я указал для того или иного уровня доступа в настройках WP Access Ultimate.
Скриншоты по сути вопроса прилагаю.
Как я понимаю за это отвечает данный код:
<?php global $WAU_User; ?>
<li class="plan">
<ul class="planContainer">
<li class="title">
<span <?php echo $tariff->is_best? 'class="bestPlanTitle"': ''; ?>><?php echo $tariff->tariff_name; ?></span>
</li>
<li class="price">
<p <?php echo $tariff->is_best? 'class="bestPlanPrice"': ''; ?>>
<?php if($tariff->tariff_price != $discount = wau_get_tariff_price($tariff->tariff_id)): ?>
<s><?php echo $tariff->tariff_price; ?></s> <?php echo $discount; ?>
<?php else: ?>
<?php echo $tariff->tariff_price; ?>
<?php endif; ?>
<span><?php echo rcl_get_primary_currency(1); ?></span>
</p>
</li>
</ul>
</li>
Но как правильно его применить в отдельном месте сайта? Просто вставка, нечего не выводит. И при этом, нужно чтобы тоже был вывод размера самой скидки, такой какая она указана в настройках.
Андрей CS сказал(а)
Все указанные данные можно вывести через php. У вас есть верстка, где все это требуется вывести?
Да Андрей, есть. Код ниже, выводит цену которую я указываю в настройках темы для карточки товара. вот его нужно преобразовать к тому виду, о чем я писал выше. + это будет плюсом, что не придется менять цену в 2 местах. А будет достаточно изменить цену только в плагине WP Access Ultimate
<?php
$price = get_post_meta($post->ID, 'price', true);
?>
<div class="product-price">
<?php _e('Цена, руб', 'gpress'); ?>:
<span><?php echo esc_attr($price) ?></span>
</div>
Если вам надо сформировать карточку какого то определенного тарифного плана, то его данные можно получить с помощью функции
wau_get_tariff() передав в нее идентификатор этого тарифного плана, например так:
$tariff = wau_get_tariff(1);
если же надо получить все тарифные планы определенного аккаунта доступа, то следует использовать функцию wau_get_tariffs(), передав в нее идентификатор доступа например так:
$tariffs = wau_get_tariffs(array('account_id'=>1));и далее уже обрабатываете полученный результат в php и вставляете в свою верстку
Андрей, помогите пожалуйста привести код в нормальный и правильный вид. Сейчас он работает в таком виде как надо, но я плохо разбираюсь в php и не могу понять как привести его к более красивому и правильному формату.
Вот конструкция кода:
<?php if (is_single('90')) { ?>
<?php $tariff = wau_get_tariff(10); ?>
<?php if ($tariff->tariff_price != $discount = wau_get_tariff_price($tariff->tariff_id)): ?>
<span><s><?php echo $tariff->tariff_price; ?></s> <?php echo $discount; ?> <i class="rcli fa-rub"></i></span> <p>Ваша скидка: 10%</p>
<?php else: ?>
<span><?php echo $tariff->tariff_price; ?> <i class="rcli fa-rub"></i></span>
<?php endif; ?>
<?php } else if (is_single('323')) { ?>
<?php $tariff = wau_get_tariff(11); ?>
<?php if ($tariff->tariff_price != $discount = wau_get_tariff_price($tariff->tariff_id)): ?>
<span><s><?php echo $tariff->tariff_price; ?></s> <?php echo $discount; ?> <i class="rcli fa-rub"></i></span> <p>Ваша скидка: 10%</p>
<?php else: ?>
<span><?php echo $tariff->tariff_price; ?> <i class="rcli fa-rub"></i></span>
<?php endif; ?>
<?php } else {
echo "<span>$price <i class='rcli fa-rub'></i></span>";
} ?>
Описание конструкции:
Если страница ID=90 (страница с 1 тарифным планом 1 уровня доступа) ->
Если пользователь имеет дисконт, тогда вывести ->
Цена, в руб:1000900 Р
Ваша скидка: 10%
Иначе вывести ->
Полную цену тарифного плана 1 уровня доступа 1 ->
Конец
Иначе если страница ID=323 (страница с 2 тарифным планом 1 уровня доступа) ->
Если пользователь имеет дисконт, тогда вывести ->
Цена, в руб:20001800 Р
Ваша скидка: 10%
Иначе вывести ->
Полную цену тарифного плана 2 уровня доступа 1 ->
Конец
.... и т.д. тарифов всего 9.
Иначе вывести цену товара указанного на странице карточки товара.
Конец
Также я хотел бы вывести процент скидки не вручную, а через php. Размер скидки я указываю в настройках дополнения для каждого уровня доступа. Всего 3 уровня доступа. Какой нужно прописать переменную, чтобы размер скидки выводился в цифровом формате, но брался автоматически из настроек дополнения? Чтобы если я там изменю скидку, не пришлось лезть опять в код страницы.
Общий код у меня получился такой:
<!-- Тариф Лесенка «Серебро» -->
<?php if (is_single('90')) { ?>
<?php $tariff = wau_get_tariff(10); ?>
<?php if ($tariff->tariff_price != $discount = wau_get_tariff_price($tariff->tariff_id)): ?>
<span><s style="color:#333"><?php echo $tariff->tariff_price; ?></s> <?php echo $discount; ?> <i class="rcli fa-rub"></i></span> <p>Ваша скидка: 10%</p>
<?php else: ?>
<span><?php echo $tariff->tariff_price; ?> <i class="rcli fa-rub"></i></span>
<?php endif; ?>
<!-- Тариф Лесенка «Серебро» -->
<!-- Тариф Лесенка «Золото» -->
<?php } else if (is_single('323')) { ?>
<?php $tariff = wau_get_tariff(11); ?>
<?php if ($tariff->tariff_price != $discount = wau_get_tariff_price($tariff->tariff_id)): ?>
<span><s style="color:#333"><?php echo $tariff->tariff_price; ?></s> <?php echo $discount; ?> <i class="rcli fa-rub"></i></span> <p>Ваша скидка: 10%</p>
<?php else: ?>
<span><?php echo $tariff->tariff_price; ?> <i class="rcli fa-rub"></i></span>
<?php endif; ?>
<!-- Тариф Лесенка «Золото» -->
<!-- Тариф Лесенка «Платина» -->
<?php } else if (is_single('322')) { ?>
<?php $tariff = wau_get_tariff(12); ?>
<?php if ($tariff->tariff_price != $discount = wau_get_tariff_price($tariff->tariff_id)): ?>
<span><s style="color:#333"><?php echo $tariff->tariff_price; ?></s> <?php echo $discount; ?> <i class="rcli fa-rub"></i></span> <p>Ваша скидка: 10%</p>
<?php else: ?>
<span><?php echo $tariff->tariff_price; ?> <i class="rcli fa-rub"></i></span>
<?php endif; ?>
<!-- Тариф Лесенка «Платина» -->
<!-- Тариф Уверенность «Серебро» -->
<?php } else if (is_single('321')) { ?>
<?php $tariff = wau_get_tariff(4); ?>
<?php if ($tariff->tariff_price != $discount = wau_get_tariff_price($tariff->tariff_id)): ?>
<span><s style="color:#333"><?php echo $tariff->tariff_price; ?></s> <?php echo $discount; ?> <i class="rcli fa-rub"></i></span> <p>Ваша скидка: 5%</p>
<?php else: ?>
<span><?php echo $tariff->tariff_price; ?> <i class="rcli fa-rub"></i></span>
<?php endif; ?>
<!-- Тариф Уверенность «Серебро» -->
<!-- Тариф Уверенность «Золото» -->
<?php } else if (is_single('92')) { ?>
<?php $tariff = wau_get_tariff(1); ?>
<?php if ($tariff->tariff_price != $discount = wau_get_tariff_price($tariff->tariff_id)): ?>
<span><s style="color:#333"><?php echo $tariff->tariff_price; ?></s> <?php echo $discount; ?> <i class="rcli fa-rub"></i></span> <p>Ваша скидка: 5%</p>
<?php else: ?>
<span><?php echo $tariff->tariff_price; ?> <i class="rcli fa-rub"></i></span>
<?php endif; ?>
<!-- Тариф Уверенность «Золото» -->
<!-- Тариф Уверенность «Платина» -->
<?php } else if (is_single('320')) { ?>
<?php $tariff = wau_get_tariff(3); ?>
<?php if ($tariff->tariff_price != $discount = wau_get_tariff_price($tariff->tariff_id)): ?>
<span><s style="color:#333"><?php echo $tariff->tariff_price; ?></s> <?php echo $discount; ?> <i class="rcli fa-rub"></i></span> <p>Ваша скидка: 5%</p>
<?php else: ?>
<span><?php echo $tariff->tariff_price; ?> <i class="rcli fa-rub"></i></span>
<?php endif; ?>
<!-- Тариф Уверенность «Платина» -->
<!-- Тариф Вызов букмекеру «Серебро» -->
<?php } else if (is_single('319')) { ?>
<?php $tariff = wau_get_tariff(7); ?>
<?php if ($tariff->tariff_price != $discount = wau_get_tariff_price($tariff->tariff_id)): ?>
<span><s style="color:#333"><?php echo $tariff->tariff_price; ?></s> <?php echo $discount; ?> <i class="rcli fa-rub"></i></span> <p>Ваша скидка: 10%</p>
<?php else: ?>
<span><?php echo $tariff->tariff_price; ?> <i class="rcli fa-rub"></i></span>
<?php endif; ?>
<!-- Тариф Вызов букмекеру «Серебро» -->
<!-- Тариф Вызов букмекеру «Золото» -->
<?php } else if (is_single('103')) { ?>
<?php $tariff = wau_get_tariff(9); ?>
<?php if ($tariff->tariff_price != $discount = wau_get_tariff_price($tariff->tariff_id)): ?>
<span><s style="color:#333"><?php echo $tariff->tariff_price; ?></s> <?php echo $discount; ?> <i class="rcli fa-rub"></i></span> <p>Ваша скидка: 10%</p>
<?php else: ?>
<span><?php echo $tariff->tariff_price; ?> <i class="rcli fa-rub"></i></span>
<?php endif; ?>
<!-- Тариф Вызов букмекеру «Золото» -->
<!-- Тариф Вызов букмекеру «Платина» -->
<?php } else if (is_single('317')) { ?>
<?php $tariff = wau_get_tariff(8); ?>
<?php if ($tariff->tariff_price != $discount = wau_get_tariff_price($tariff->tariff_id)): ?>
<span><s style="color:#333"><?php echo $tariff->tariff_price; ?></s> <?php echo $discount; ?> <i class="rcli fa-rub"></i></span> <p>Ваша скидка: 10%</p>
<?php else: ?>
<span><?php echo $tariff->tariff_price; ?> <i class="rcli fa-rub"></i></span>
<?php endif; ?>
<!-- Тариф Вызов букмекеру «Платина» -->
<!-- Вывод цены тарифа из поля "price" карточки товара -->
<?php } else {
echo "<span>$price <i class='rcli fa-rub'></i></span>";
} ?>
<!-- Вывод цены тарифа из поля "price" карточки товара -->
Я уверен, что я его можно упростить.
числовое значение размера скидки можно получить так:
wau_get_meta($tariff->account_id, 'account', 'uptime_discount')
Как я понял вы используете этот код в цикле шаблона, возможно, архива. Я бы написал такую функцию:
function the_single_post_tariffbox(){
global $post;
$tariffPosts = array(
90 => 10,
323 => 11,
322 => 12,
321 => 4,
92 => 1,
320 => 3,
319 => 7,
103 => 9,
317 => 8
);
if(!isset($tariffPosts[$post->ID])) return false;
$tariff_id = $tariffPosts[$post->ID];
$tariff = wau_get_tariff($tariff_id); ?>
<?php if ($tariff->tariff_price != $discount = wau_get_tariff_price($tariff->tariff_id)): ?>
<span><s style="color:#333"><?php echo $tariff->tariff_price; ?></s> <?php echo $discount; ?> <i class="rcli fa-rub"></i></span> <p>Ваша скидка: 10%</p>
<?php else: ?>
<span><?php echo $tariff->tariff_price; ?> <i class="rcli fa-rub"></i></span>
<?php endif; ?>
<?php }и уже в шаблоне просто вывел
the_single_post_tariffbox();

