WooCommerceの最近表示された製品のショートコードを作成する方法
公開: 2021-05-05
ショートコードを使用して最近表示した製品を表示する方法をお探しですか? この投稿では、最近閲覧したWooCommerce製品のショートコードを作成する方法を紹介します。 デフォルトでは、WooCommerceではウィジェットを使用して、顧客が最近閲覧した製品のリストを表示できます。
この組み込みソリューションは非常に効果的であり、まもなくグーテンベルクブロックになると信じています。
ただし、関連製品を新しいページに表示したい場合があります。 これは、ショートコードを作成する必要があることを意味します。
WooCommerce最近表示された製品のショートコード
この簡単なチュートリアルでは、最近表示した製品を表示するための簡単なショートコードを作成する方法を共有します。 先に進む前に、このソリューションにはコードの処理が含まれることに注意する必要があります。
コードの処理に慣れていない場合は、サイトを台無しにしないように、資格のあるWordPress開発者に連絡することをお勧めします。
また、更新中に変更が失われないように、子テーマを作成する必要があります。
これをどのように達成できるか見てみましょう。
最近表示した製品のショートコードを追加する手順
ショートコードを作成するには、既存の[製品]ショートコードを利用して、車輪の再発明を行うことなく製品IDを「渡し」ます。
または、ショートコードをテーマに登録するプラグインを作成することもできます。 最も簡単な方法であるため、この方法を使用します。
プラグインの名前で新しいフォルダを作成する必要があります。
最近の製品が表示されない場合は、[最近表示した製品]ウィジェットをアクティブにする必要があるためです。 「woocommerce_recently_viewed」Cookieは、最近表示された製品ウィジェットが使用されている場合にのみ保存されます。
必要な最も重要なデータは、$ _ COOKIE ['woocommerce_recently_viewed']というCookieに保存されます。
必要に応じて、Cookieを追跡/作成するための独自のコードを含めることができます。
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ファイルを編集するときは注意が必要です。
同様の記事
- 100以上のヒント、コツ、スニペットUltimate WooCommerce Hide Guide
- 例を使用してページまたは投稿でWordPressショートコードを使用する方法
- WooCommerceでマイアカウントページを作成する方法
- WooCommerceログインログアウトショートコードを作成する方法
- 製品をインポートする方法WooCommerce
- キログラムあたりのWooCommerce製品価格を設定する方法
- プログラムで製品を作成する方法WooCommerce
- WooCommerceシークレット製品の作成方法
- ログイン後にWooCommerceを作成する方法ホームページにリダイレクト
- WooCommerceを作成する方法製品IDごとにカートボタンに追加
- プログラムで注文を作成する方法WooCommerce
- WooCommerceマイアカウントページリダイレクトを追加する方法
- WooCommerceで製品をエクスポートする方法
- WooCommerceで製品SKUを追加する方法
- WooCommerceで商品を複製する方法
- WordPress(PHP)でdo_shortcodeを使用する方法
- WooCommerceカスタムショップページを作成する方法
- WooCommerceでチェックアウト後に注文の詳細を取得する方法
- WooCommerceの属性に価格を追加する方法
- WooCommerceで最小限の費用で送料無料を設定する方法
