【问题标题】:WooCommerce conditional tags not workingWooCommerce 条件标签不起作用
【发布时间】:2018-02-06 06:36:53
【问题描述】:

我正在尝试混合使用 Wordpress 和 Wooommerce 条件标签来在我网站的某些页面上加载内容。但是,WooCommerce 条件标签似乎没有任何效果。在下面的示例中,如果用户已登录,或者他们在任何 WooCommerce 页面上,我将尝试不加载某些代码。登录后有效,但在 WooCommerce 页面上不起作用?

!is_checkout()!is_account_page()我也试过了,都不生效?

<?php
// Do not display code if user is logged in OR on any woocommerce pages
if ( !is_user_logged_in() || !is_woocommerce() ) {
    // CODE HERE
} ?>

【问题讨论】:

  • 你把代码放在哪里了?
  • 它在 2 个地方,一次在 functions.php 中加载脚本,再次在标题标记中加载 html。应该工作。
  • 它应该这样工作:如果用户已登录并且当他不在产品/产品上时。类别/商店页面/子页面。如果用户已注销。在我提到的条件下它在哪里不起作用?

标签: php wordpress if-statement woocommerce


【解决方案1】:

经过一番调查(我仍然不确定这里的逻辑),事实证明我们需要将 OR || 语句替换为 AND &amp;&amp; 语句。

具有 OR || 的多个 ! 将始终等于 true,因为该字符串变量只会等于一个,而不是另一个。

这是经过测试并且有效的,但是任何人都可以阐明逻辑吗?我曾假设仅当所有条件都为 TRUE 时,将所有 || 替换为 &amp;&amp; 不会导致执行语句?

这是更新后的代码:

全部替换||只有当所有条件都为 TRUE 时,带有 && 才会导致执行括号中的语句?

这是更新后的代码:

<?php
// Do not display code if user is logged in OR on any woocommerce pages
if ( !is_user_logged_in() && !is_woocommerce() ) {
    // CODE HERE
} ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    • 2013-08-05
    • 1970-01-01
    • 2017-09-09
    相关资源
    最近更新 更多