XCart отключить кнопку проверки, если конкретный товар находится в корзине

У меня есть этот код, который я использую в XCart 4.6, чтобы скрыть кнопку оформления заказа.

{section name=product loop=$products}
{if $products[product].productid eq 3065}
 
{else}
<a href="http://academyprohair.com/cart.php" style="margin-top:5px;"><img src="{$AltImagesDir}/button_checkout.jpg" alt="" /></a>
{/if}
{/section}

Он отлично работает на странице корзины, но разрывается на каждой другой странице и скрывает кнопку оформления заказа независимо от того, какой товар находится в корзине.

1

Решение

В вашем вопросе есть несколько вопросов:

массив {$products} который содержит товары в корзине, доступен только на страницах корзины и оформления заказа. Вы не можете использовать его на других страницах, потому что он не существует.

То, как вы проверяете, находится ли конкретный товар в корзине, неверно На первом месте. Код, который вы предоставили, напечатает, например, 5 ссылок на корзину, если у вас есть 5 продуктов в корзине, которые не имеют id=3065,

Итак, давайте найдем решение. Так как вам нужно проверить, есть ли один продукт в корзине на каждой странице (чтобы скрыть ссылку Checkout), вам нужно создать PHP-скрипт, который проверяет наличие товара. Мы установим глобальную переменную smarty is_product_in_cart, который вы можете использовать в любом месте в файлах TPL. Основной файл xcart, который мы изменим home.php в корне, мы добавим код, прежде чем показать шаблон (до окончания func_display('customer/home.tpl', $smarty);):

/* academyprohair.com custom code */
$my_products = func_products_in_cart($cart);
$is_product_in_cart = 'N';
foreach( $my_products as $product ) {
if ( $product['productid']==3065 ) {
$is_product_in_cart = 'Y';
break;
};
};
$smarty->assign('is_product_in_cart', $is_product_in_cart);

В ваших шаблонах везде, кроме страниц Корзина и Оформление заказа, вы можете легко показать ссылку на корзину с помощью:

{if $is_product_in_cart neq 'Y' }
<a href="http://academyprohair.com/cart.php" style="margin-top:5px;"><img src="{$AltImagesDir}/button_checkout.jpg" alt="" /></a>
{/if}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]