在我的Woocommerce帐户页面

时间:2017-08-03 14:45:03

标签: php wordpress woocommerce

在我的woocommerce购物网站的帐户区域,您可以点击“订单”并查看您的订单,即已完成,取消,暂停等等。

但是,当您点击“收藏”(我在帐户区域内制作的一个页面)时,我希望它只显示“已完成”的项目。

我试图将以下代码放入functions.php但没有运气:

(参考 - https://businessbloomer.com/woocommerce-display-products-purchased-user/

add_shortcode( 'my_products', 'bbloomer_user_products_bought' );

function bbloomer_user_products_bought() {
global $product, $woocommerce, $woocommerce_loop;
$columns = 3;
$current_user = wp_get_current_user();
$args = array(
    'post_type'             => 'product',
    'post_status'           => 'publish',
    'meta_query'            => array(
        array(
            'key'           => '_visibility',
            'value'         => array('catalog', 'visible'),
            'compare'       => 'IN'
        )
    )
);
$loop = new WP_Query($args);

ob_start();

woocommerce_product_loop_start();

循环部分

while ( $loop->have_posts() ) : $loop->the_post();
$theid = get_the_ID();
if ( wc_customer_bought_product( $current_user->user_email, $current_user->ID, $theid ) ) {
wc_get_template_part( 'content', 'product' ); 
} 
endwhile; 

woocommerce_product_loop_end();

woocommerce_reset_loop();
wp_reset_postdata();

return '<div class="woocommerce columns-' . $columns . '">' . ob_get_clean() . '</div>';
}

然后添加短代码:

[my_products]

当你点击收藏链接时它没有显示任何东西 - 好吧会生成一个里面没有任何内容的div!

有没有更好的方法来做这个或另类?

1 个答案:

答案 0 :(得分:0)

用下面的代码替换你的$ args

$args = array(
    'post_type'             => 'shop_order',
    'post_status'           => 'wc-completed'
);

然后让我知道结果。感谢