IT

WordPress 템플릿에서 현재 페이지가 WooCommerce 카트인지 체크아웃 페이지인지 어떻게 알 수 있습니까?

itgroup 2023. 2. 10. 21:43
반응형

WordPress 템플릿에서 현재 페이지가 WooCommerce 카트인지 체크아웃 페이지인지 어떻게 알 수 있습니까?

사용자가 WooCommerce 카트나 체크아웃 시 헤더 배너를 숨기고 싶습니다.현재 페이지가 WooCommerce 섹션 중 하나에 있는지 확인할 수 있는 플래그나 변수가 있습니까?저는 기본적으로 다음과 같은 것을 하고 싶습니다.

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

각 섹션의 커스텀페이지 템플릿을 만들 수 있지만 글로벌사이트 헤더에 간단한 코드를 추가하고 싶습니다.

카트 페이지

is_cart()

카트 페이지에서 true를 반환합니다.

체크아웃 페이지

is_checkout()

체크아웃 페이지에서 true를 반환합니다.

WooCommerce 조건부 태그에 대해 자세히 볼 수 있습니다.

주의하시기 바랍니다.is_checkout()(템플릿을 로드하기 전에) 일찍 필요한 경우에는 무용지물입니다.또한 너무 일찍 호출하면 체크 아웃페이지에 잘못 표시됩니다.

다음과 같은 것이 보다 보편적입니다.

/**
 * 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"에서도 1위를 차지합니다.

카트도 마찬가지입니다.

/**
 * 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)
  );
}

워드프레스 함수를 사용하고 싶다면 여기에 is_page('name')가 있습니다.https://developer.wordpress.org/reference/functions/is_page/

페이지 이름(페이지 슬래그)을 사용해야 합니다.이 예에서는 '카트', '체크아웃'이라고 합니다.

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

muju only의 응답과 마찬가지로 woocommerce가 제공하는 것을 조건부 태그와 함께 사용할 수도 있습니다.

Woocommerce 기능에 문제가 있거나 워드프레스 기능에 머무르고 싶다면 제 답변이 대안이 될 수 있습니다.

언급URL : https://stackoverflow.com/questions/61940219/in-a-wordpress-template-how-can-i-detect-if-the-current-page-is-the-woocommerce

반응형