我正在使用以下代碼段來顯示在 "商店 "和 "單一產品 "頁面上有多少人在其當前的購物車中添加了產品;與您在Etsy等商店中看到的情況類似。
該片段可按原樣運行,但最好能根據是否有一個用戶和多個用戶來有條件地改變資訊(即 "現在有一個人在其購物車中。"與 "現在有10個人在其購物車中。")。
如果有人對處理這個問題的最佳方式有任何建議,我們將不勝感激。 :)
function show_no_of_people_added_in_cart()>{
global $wpdb, $product;
$in_basket = 0;
$wc_session_data = $wpdb->get_results( "SELECT session_key FROM {$wpdb->prefix}woocommerce_sessions" ) 。
$wc_session_keys = wp_list_pluck( $wc_session_data, 'session_key' ) 。
if( $wc_session_keys ) {
foreach ( $wc_session_keys as $key => $_customer_id ) {
//如果你想在計數中跳過當前瀏覽者的購物車專案,否則可以洗掉belows檢查。
if( WC()-> session->get_customer_id() == $_customer_id ) continue。
$session_contents = WC()->session->get_session( $_customer_id, array( ) 。)
$cart_contents = maybe_unserialize( $session_contents['cart'] ) 。
if( $cart_contents ){
foreach ( $cart_contents as $cart_key => $item ) {
if( $item['product_id'] == $product-> get_id( ) ) {
$in_basket = 1;
}
}
}
}
}
if( $in_basket )
echo '<div class="in-basket">' . sprintf( __( '%d people have this in their cart', 'text-domain' ), $in_basket ) 。'</div> '。
}
add_action( 'woocommerce_after_shop_loop_item_title', 'show_no_of_people_added_in_cart', 11 ) 。
add_action( 'woocommerce_single_product_summary', 'show_no_of_people_added_in_cart', 21 ) 。
uj5u.com熱心網友回復:
你可以為這種情況使用函式_n
更改后的代碼
function show_no_of_people_added_in_cart(){
global $wpdb, $product;
$in_basket = 0;
$wc_session_data = $wpdb->get_results( "SELECT session_key FROM {$wpdb->prefix}woocommerce_sessions" ) 。
$wc_session_keys = wp_list_pluck( $wc_session_data, 'session_key' ) 。
if( $wc_session_keys ) {
foreach ( $wc_session_keys as $key => $_customer_id ) {
//如果你想在計數中跳過當前瀏覽者的購物車專案,否則可以洗掉belows檢查。
if( WC()-> session->get_customer_id() == $_customer_id ) continue。
$session_contents = WC()->session->get_session( $_customer_id, array( ) 。)
$cart_contents = maybe_unserialize( $session_contents['cart'] ) 。
if( $cart_contents ){
foreach ( $cart_contents as $cart_key => $item ) {
if( $item['product_id'] == $product-> get_id( ) ) {
$in_basket = 1;
}
}
}
}
}
if( $in_basket )
echo '<div class="in-basket">' . sprintf(_n( '%s person have this in their cart', '%s people have this in their cart', $in_basket, 'text-domain' ), number_format_i18n($in_basket )。'</div> ';
}
add_action( 'woocommerce_after_shop_loop_item_title', 'show_no_of_people_added_in_cart', 11 ) 。
add_action( 'woocommerce_single_product_summary', 'show_no_of_people_added_in_cart', 21 ) 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/319158.html
標籤:
上一篇:屬性'uid'不存在于型別'Promise<User>'.ts(2339)上。
下一篇:如何在同一個事務中使用javax.persistence.Query.executeUpdate()和org.hibernate.session.update()。
