为了账号安全,请及时绑定邮箱和手机立即绑定

在 WordPress 模板中,如何检测当前页面是 WooCommerce 购物车页面还是结帐页面?

在 WordPress 模板中,如何检测当前页面是 WooCommerce 购物车页面还是结帐页面?

PHP
胡子哥哥 2023-04-15 14:09:28
当用户在 WooCommerce 购物车或结帐过程中时,我想隐藏标题横幅。是否有标志或变量可供我检查以查看当前页面是否在这些 WooCommerce 部分中的任何一个中?我基本上想做如下事情:if (!is_checkout() && !is_cart()) {    echo "<div>My Banner</div>"; }我意识到我可以为每个部分制作一个自定义页面模板,但我只想向我的全局站点标题添加一些简单的代码。
查看完整描述

3 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

购物车页面

is_cart()

在购物车页面上返回 true。

结帐页面

is_checkout()

在结帐页面上返回 true。


查看完整回答
反对 回复 2023-04-15
?
呼如林

TA贡献1798条经验 获得超3个赞

请注意,is_checkout()如果您提早需要它(我认为在加载模板之前),它是无用的,并且如果过早调用它,它将在结帐页面上错误地返回 false。


这样的事情更普遍:


/**

 * Checks if checkout is the current page.

 *

 * @return boolean

 */

function better_is_checkout() {

  $checkout_path    = wp_parse_url(wc_get_checkout_url(), PHP_URL_PATH);

  $current_url_path = wp_parse_url("http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]", PHP_URL_PATH);

  

  return (

    $checkout_path !== null

    && $current_url_path !== null

    && trailingslashit($checkout_path) === trailingslashit($current_url_path)

  );

}

is_checkout() 适用于实际问题,但该问题在“WooCommerce check if checkout”方面在 Google 中也排名第一


这同样适用于购物车:


/**

 * Checks if cart is the current page.

 *

 * @return boolean

 */

 function better_is_cart() {

   $cart_path        = wp_parse_url(wc_get_cart_url(), PHP_URL_PATH);

   $current_url_path = wp_parse_url("http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]", PHP_URL_PATH);


    return (

      $cart_path !== null

      && $current_url_path !== null

      && trailingslashit($cart_path) === trailingslashit($current_url_path)

  );

}


查看完整回答
反对 回复 2023-04-15
?
忽然笑

TA贡献1806条经验 获得超5个赞

如果你想使用 wordpress 功能,这里有 `is_page('name')' 供您使用。

您需要使用页面的名称(页面别名)。在示例中,我假设它们被称为“购物车”和“结帐”。

if (!is_page('cart') && !is_page('checkout')) { ... }

您还可以使用 woocommerce 为您提供的条件标签。

如果您遇到 woocommerce 功能问题或想继续使用 wordpress 功能,我的回答可能是另一种选择。


查看完整回答
反对 回复 2023-04-15
  • 3 回答
  • 0 关注
  • 140 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信