簡體   English   中英

在 WordPress 模板中,如何檢測當前頁面是 WooCommerce 購物車還是結帳頁面?

[英]In a WordPress template, how can I detect if the current page is the WooCommerce cart or checkout page?

當用戶在 WooCommerce 購物車或結帳過程中時,我想隱藏一個 header 橫幅。 是否有一個標志或變量可以檢查以查看當前頁面是否在這些 WooCommerce 部分中的任何一個中? 我基本上想做以下事情:

if (!is_checkout() && !is_cart()) {
   echo "<div>My Banner</div>";
}

我意識到我可以為每個部分制作自定義頁面模板,但我只想在我的全球站點 header 中添加一些簡單的代碼。

購物車頁面

is_cart()

在購物車頁面上返回 true。

結帳頁面

is_checkout()

在結帳頁面上返回 true。

你可以看到更多關於WooCommerce 條件標簽

如果您想使用 wordpress function,這里有 `is_page('name')' 供您使用。https://developer.wordpress.org/reference/functions/is_page/

您需要使用頁面的名稱(page slug)。 在示例中,我假設它們被稱為“購物車”和“結賬”。

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

正如 mujuonly 的回答一樣,您也可以使用 woocommerce 為您提供的條件標簽。

如果您遇到 woocommerce 函數的問題或想繼續使用 wordpress 函數,我的回答可能是另一種選擇。

請注意is_checkout()如果您提前需要它(我認為在加載模板之前)它是無用的,並且如果過早調用它會在結帳頁面上錯誤地返回 false 。

像這樣的東西更普遍:

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 檢查是否結帳”中也排名第一

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM