WooCommerce 최근 본 제품 단축 코드를 만드는 방법

게시 됨: 2021-05-05

WooCommerce 최근 본 제품 단축 코드 숏코드를 사용하여 최근에 본 상품을 표시하는 방법을 찾고 계십니까? 이 게시물에서는 WooCommerce 최근 본 제품 단축 코드를 만드는 방법을 보여 드리고자 합니다. 기본적으로 WooCommerce에서는 위젯을 사용하여 고객이 최근에 본 제품 목록을 표시할 수 있습니다.

이 내장 솔루션은 매우 효과적이며 곧 구텐베르그 블록이 될 것이라고 믿습니다.

그러나 새 페이지에 관련 제품을 표시할 수 있습니다. 즉, 단축 코드를 생성해야 합니다.

WooCommerce 최근 본 제품 단축 코드

이 간단한 자습서에서는 최근에 본 제품을 표시하기 위한 간단한 단축 코드를 만드는 방법을 공유합니다. 계속하기 전에 이 솔루션에는 코드 처리가 포함된다는 점에 유의해야 합니다.

코드 처리에 익숙하지 않은 경우 자격을 갖춘 WordPress 개발자에게 문의하여 사이트를 엉망으로 만들지 않는 것이 좋습니다.

또한 업데이트 중에 변경 사항이 손실되지 않도록 자식 테마를 만들어야 합니다.

이를 달성할 수 있는 방법을 살펴보겠습니다.

최근 본 제품 단축 코드를 추가하는 단계

단축 코드를 생성하기 위해 기존 [제품] 단축 코드를 활용하고 바퀴를 재발명할 필요 없이 제품 ID를 "전달"합니다.

또는 테마에 단축 코드를 등록하는 플러그인을 만들 수 있습니다. 가장 쉬운 방법이므로 이 방법을 사용합니다.

플러그인 이름으로 새 폴더를 만들어야 합니다.

최근 제품이 표시되지 않으면 최근에 본 제품 위젯을 활성화해야 하기 때문입니다. "woocommerce_recently_viewed" 쿠키는 최근에 본 상품 위젯을 사용 중일 때만 저장됩니다.

우리에게 필요한 가장 중요한 데이터는 $_COOKIE['woocommerce_recently_viewed']라는 쿠키에 저장됩니다.

원하는 경우 쿠키를 추적/생성하는 고유한 코드를 포함할 수 있습니다.

function custom_track_product_view() {

    if ( ! is_singular( 'product' ) ) {

        return;

    }

    global $post;

    if ( empty( $_COOKIE['woocommerce_recently_viewed'] ) )

        $viewed_products = array();

    else

        $viewed_products = (array) explode( '|', $_COOKIE['woocommerce_recently_viewed'] );

    if ( ! in_array( $post->ID, $viewed_products ) ) {

        $viewed_products[] = $post->ID;

    }

    if ( sizeof( $viewed_products ) > 15 ) {

        array_shift( $viewed_products );

    }

    // Store for session only

    wc_setcookie( 'woocommerce_recently_viewed', implode( '|', $viewed_products ) );

}

add_action( 'template_redirect', 'custom_track_product_view', 20 );

플러그인의 전체 코드는 다음과 같습니다.


function njengah_woocommerce_recently_viewed_products( $atts, $content = null ) {

// Get shortcode parameters

extract(shortcode_atts(array(

"per_page" => '5'

), $atts));

// Get WooCommerce Global

global $woocommerce;

// Get recently viewed product cookies data

$viewed_products = ! empty( $_COOKIE['woocommerce_recently_viewed'] ) ? (array) explode( '|', $_COOKIE['woocommerce_recently_viewed'] ) : array();

$viewed_products = array_filter( array_map( 'absint', $viewed_products ) );

// If no data, quit

if ( empty( $viewed_products ) )

return __( 'You have not viewed any product yet!', 'rc_wc_rvp' );

// Create the object

ob_start();

// Get products per page

if( !isset( $per_page ) ? $number = 5 : $number = $per_page )

// Create query arguments array

$query_args = array(

'posts_per_page' => $number,

'no_found_rows'  => 1,

'post_status'    => 'publish',

'post_type'      => 'product',

'post__in'       => $viewed_products,

'orderby'        => 'rand'

);

// Add meta_query to query args

$query_args['meta_query'] = array();

// Check products stock status

$query_args['meta_query'][] = $woocommerce->query->stock_status_meta_query();

// Create a new query

$r = new WP_Query($query_args);

// If query return results

if ( $r->have_posts() ) {

$content = '<ul class="rc_wc_rvp_product_list_widget">';

// Start the loop

while ( $r->have_posts()) {

$r->the_post();

global $product;

$content .= '<li>

<a href="' . get_permalink() . '">

' . ( has_post_thumbnail() ? get_the_post_thumbnail( $r->post->ID, 'shop_thumbnail' ) : woocommerce_placeholder_img( 'shop_thumbnail' ) ) . ' ' . get_the_title() . '

</a> ' . $product->get_price_html() . '

</li>';

}

$content .= '</ul>';

}

// Get clean object

$content .= ob_get_clean();




// Return whole content

return $content;

}

// Register the shortcode

add_shortcode("woocommerce_recently_viewed_products", "njengah_woocommerce_recently_viewed_products");

코드를 추가한 후 아무 페이지에나 [woocommerce_recently_viewed_products per_page=”5″]를 추가하세요.

결과는 다음과 같습니다. 결과

결론

이 간단한 자습서에서는 단축 코드를 사용하여 최근에 본 제품을 표시하는 방법을 공유했습니다.

functions.php 파일을 편집할 때 주의해야 합니다. 실수를 하면 치명적인 오류가 표시되기 때문입니다.

유사한 기사

  1. 100개 이상의 팁, 트릭 및 스니펫 Ultimate WooCommerce Hide Guide
  2. 예제와 함께 페이지 또는 게시물에서 WordPress 단축 코드를 사용하는 방법
  3. WooCommerce에서 최소 지출로 무료 배송을 설정하는 방법