Woocommerce, 현재 제품 ID 가져오기
현재 WooCommerce 테마를 작업 중이며 제품 상세 페이지에 사이드바를 추가하려고 합니다.
사이드바를 추가할 수 있었습니다(구체적으로는 http://woocommerce.wp-a2z.org/oik_file/templatescontent-widget-product-php/)).
현재 선택된 제품에 "액티브" 클래스를 추가하는 방법을 알아보려고 하는데 알 수 없는 것 같습니다.
즉, 현재 제품 ID가 사이드바의 제품 ID와 동일한 경우 li에 class="active"를 추가하는 방법은 무엇입니까?
수없이 찾아봤지만 쓸만한 게 없어서 여기로 돌아왔어요
아무쪼록 잘 부탁드립니다!!
2017년 업데이트 - WooCommerce 3 이후:
global $product;
$id = $product->get_id();
Woocommerce는 이러한 변수에 직접 액세스하는 것을 좋아하지 않습니다.그러면 wp_debug가 true일 경우 woocommerce에서 경고가 제거됩니다.
어떤 이유로 인해 플러그인에 의해 쿼리가 수정되지 않은 경우 다음 방법으로 단일 제품 페이지의 "ID"를 얻을 수 있습니다.
global $post;
$id = $post->ID
또는
global $product;
$id = $product->id;
편집: WooCommerce 3.0에서는 이 기능이 필요합니다.
global $product;
$id = $product->get_id();
WooCommerce 이후2.2
간단히 사용할 수 있습니다.wc_get_product
방법.인수로서는ID
이미 루프를 사용하고 있다면 비워두어도 됩니다.
wc_get_product()->get_id();
2행의 OR
$product = wc_get_product();
$id = $product->get_id();
WordPress Loop에서 현재 항목의 ID를 검색합니다.
echo get_the_ID();
따라서 제품 ID에도 사용할 수 있습니다.#commerce #woo-commerce
올바른 방법은 다음과 같습니다.
global $product;
$id = $product->get_id();
루프를 입력하기 전에 현재 제품 ID를 저장하십시오.
$current_product = $product->id;
다음으로 사이드바 루프에서 $product->id를 다시 사용하여 다음을 비교합니다.
<li><a <? if ($product->id == $current_product) { echo "class='on'"; }?> href="<?=get_permalink();?>"><?=the_title();?></a></li>
프로그램적으로 woocommerce를 조회할 수 있으며 심지어 장바구니에 제품을 추가할 수도 있습니다.코드를 읽으면 woocommerce 카트와 상호작용하는 방법을 알 수 있을 거예요.프로그램적으로 woocommerce 카트와 상호 작용하는 방법
====================================
<?php
add_action('wp_loaded', 'add_product_to_cart');
function add_product_to_cart()
{
global $wpdb;
if (!is_admin()) {
$product_id = wc_get_product_id_by_sku('L3-670115');
$found = false;
if (is_user_logged_in()) {
if (sizeof(WC()->cart->get_cart()) > 0) {
foreach (WC()->cart->get_cart() as $cart_item_key => $values) {
$_product = $values['data'];
if ($_product->get_id() == $product_id)
WC()->cart->remove_cart_item($cart_item_key);
}
}
} else {
if (sizeof(WC()->cart->get_cart()) > 0) {
foreach (WC()->cart->get_cart() as $cart_item_key => $values) {
$_product = $values['data'];
if ($_product->id == $product_id)
$found = true;
}
// if product not found, add it
if (!$found)
WC()->cart->add_to_cart($product_id);
} else {
// if no products in cart, add it
WC()->cart->add_to_cart($product_id);
}
}
}
}
언급URL : https://stackoverflow.com/questions/27385920/woocommerce-get-current-product-id
'programing' 카테고리의 다른 글
여러 Spring Boot 간에 테스트컨테이너를 재사용하는 방법테스트? (0) | 2023.03.18 |
---|---|
메서드 매개 변수에서 WCF webHttpBinding 오류가 발생했습니다."래퍼 요소 없이 최대 하나의 본문 매개 변수를 직렬화할 수 있습니다." (0) | 2023.03.13 |
리스트/어레이가 유효한 JSON입니까? (0) | 2023.03.13 |
Axios 가로채기 및 비동기 로그인 (0) | 2023.03.13 |
Spring Boot Application 내부 구조 (0) | 2023.03.13 |