Здравствуйте!
Прошу помочь с выводом цены определенного тарифного плана (и его цены со скидкой, если она есть) и размера скидки в определенном месте сайта.
На сайте есть каталог товаров, который содержит описание и цены тарифного плана и есть контент который закрывается плагином 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();