在if语句中一起使用多个WooCommerce条件标记

时间:2017-12-07 23:05:20

标签: php wordpress if-statement woocommerce shortcode

我遇到<div [data]="[1, 2, 'test']"></div> is_cart()is_checkout()个问题的问题。

我正在尝试做什么:

  • 如果是Cart页面,则回显此短代码。
  • 如果购物车页面,则不执行任何操作。

这需要发生在页面顶部和底部,都在页面容器之外。

当我查看购物车,结帐,帐户页面时,它可以完美运行。但是,只要我查看不是购物车/结帐/帐户页面的任何其他页面,短代码仍会显示!

该网站使用Divi主题(由ElegantThemes提供)与WooCommerce。 以下是我正在使用的片段:

is_account_page()
<?php if ( ! (function_exists('is_cart') && is_cart()) || ( ! function_exists('is_account_page') && is_account_page()) || ( ! function_exists('is_checkout') && is_checkout() ) ) : ?>
 <?php echo do_shortcode('[et_pb_section global_module="218"][/et_pb_section]'); ?>
 <?php endif; ?>

这是整个page.php代码:

<?php endif; ?>
<?php if ( ! (function_exists('is_cart') && is_cart()) || ( ! function_exists('is_account_page') && is_account_page()) || ( ! function_exists('is_checkout') && is_checkout() ) ) : ?>
 <?php echo do_shortcode('[et_pb_section global_module="247"][/et_pb_section]'); ?>
 <?php endif; ?>

1 个答案:

答案 0 :(得分:1)

如果我理解得很好,您只想在购物车,结帐和帐户WooCommerce页面输出此短代码内容

然后你应该更好地尝试这种更短的方式:

<?php  
    if ( class_exists( 'WooCommerce' ) && ( is_cart() || is_account_page() || is_checkout() ) ) :
        echo do_shortcode('[et_pb_section global_module="247"][/et_pb_section]');
    endif; 
?>

使用class_exists( 'WooCommerce' )将确保加载woocommerce插件并且条件标签可以正常运行...