WooCommerce에서 관련 제품 가져오기 및 표시
WooCommerce 관련 제품을 다음과 같은 테마에 포함시켰습니다.
<?php wc_get_template( 'single-product/related.php' ); ?>
이것은 템플릿에 복사되어 실행되고 있습니다.
하지만 이 제품으로 다양한 업셀을 추가했지만$related_products변수(루프에서 사용됨)는 NULL입니다.이러한 관련 제품을 표시하기 위해 다른 변수가 작용하고 있습니까?
그 이상의 것이 필요합니다(post_id는 제품이어야 합니다).
global $product; // If not set…
if( ! is_a( $product, 'WC_Product' ) ){
$product = wc_get_product(get_the_id());
}
$args = array(
'posts_per_page' => 4,
'columns' => 4,
'orderby' => 'rand',
'order' => 'desc',
);
$args['related_products'] = array_filter( array_map( 'wc_get_product', wc_get_related_products( $product->get_id(), $args['posts_per_page'], $product->get_upsell_ids() ) ), 'wc_products_array_filter_visible' );
$args['related_products'] = wc_products_array_orderby( $args['related_products'], $args['orderby'], $args['order'] );
// Set global loop values.
wc_set_loop_prop( 'name', 'related' );
wc_set_loop_prop( 'columns', $args['columns'] );
wc_get_template( 'single-product/related.php', $args );
또는 더 짧은 방법으로 (같은 결과를 얻을 수 있습니다)
global $product;
if( ! is_a( $product, 'WC_Product' ) ){
$product = wc_get_product(get_the_id());
}
woocommerce_related_products( array(
'posts_per_page' => 4,
'columns' => 4,
'orderby' => 'rand'
) );
두 방법 모두 테스트 및 동작합니다.
언급URL : https://stackoverflow.com/questions/53356016/get-and-display-related-products-in-woocommerce
'programing' 카테고리의 다른 글
| 사용자가 입력을 중지한 경우에만 검색을 시작하는 방법 (0) | 2023.02.11 |
|---|---|
| 시스템을 캐스트 또는 변환할 수 없습니다.String to Class 객체 (0) | 2023.02.11 |
| AngularJS Batarang - interceptedExpressions란 무엇입니까? (0) | 2023.02.11 |
| 단일 제품에 대해 $syslog_item_key를 얻는 방법을 설명합니다. (0) | 2023.02.07 |
| WordPress에서 error_log()를 사용하려면 어떻게 해야 합니까? (0) | 2023.02.07 |