首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找active WooCommerce成员资格和循环结果

查找active WooCommerce成员资格和循环结果
EN

Stack Overflow用户
提问于 2017-07-06 07:23:09
回答 1查看 436关注 0票数 1

我运行WordPress,WooCommerce,WooCommerce Membership和WooCommerce订阅。

在这里,我试图查找用户和他们购买的会员资格,每个会员基本上都是一个产品,然后我试图循环并显示他们订阅的会员信息-每个会员的特色图像和名称。

我下面的代码列出了所有的成员资格,我不知道我做错了什么。

代码语言:javascript
复制
<div id="sidebar">
    <div class="sidebar-title">
        <h2>My Subscriptions</h2>
    </div>
    <div class="sidebar-body">
        <div class="channel-package-list">
            <?php
                $args = array(
                    'post_type' => 'product',
                    'posts_per_page' => 20,
                    );
                $loop = new WP_Query( $args );
                if ( $loop->have_posts() ) {

                // get all active memberships for a user; 
                // returns an array of active user membership objects
                $user_id = get_current_user_id();

                $args = array( 
                  'status' => array( 'active', 'complimentary', 'pending', 'free_trial' ),
                );  

                $active_memberships = wc_memberships_get_user_memberships( $user_id, $args );

                    while ( $loop->have_posts() ) : $loop->the_post(); 
                    if ( ! empty( $active_memberships ) ) {?>
            <div class="package-list-item">
                <div class="active-package"><i class="fa fa-check" aria-hidden="true"></i></div>
                <a href="javascript:;" class="group-link" data-id="27">
                    <figure>
                        <img src="<?php echo get_the_post_thumbnail_url($post , 'thumbnail'); ?>" class="img-responsive" style="max-width: 100px; max-height: 100px" alt="">
                        <figcaption><?php echo get_the_title($post ); ?></figcaption>
                    </figure>
                </a>
            </div>
            <?php } endwhile;
                } else {
                echo __( 'No packages found' );
                }
                wp_reset_postdata(); ?>
        </div>
    </div>
</div>
EN

回答 1

Stack Overflow用户

发布于 2019-03-20 07:11:18

您正在循环所有产品和会员资格,甚至不检查与会员资格相关的产品id。

假设您在购买产品时授予会员资格(请检查您的会员计划设置),删除所有循环,搜索用户的会员资格,通过会员计划id获取产品信息:

代码语言:javascript
复制
<div id="sidebar">
<div class="sidebar-title">
    <h2>My Subscriptions</h2>
</div>
<div class="sidebar-body">
    <div class="channel-package-list">
        <?php
          /*  $args = array(
                'post_type' => 'product',
                'posts_per_page' => 20,
                );
            $loop = new WP_Query( $args );
            if ( $loop->have_posts() ) {*/

            // get all active memberships for a user;
            // returns an array of active user membership objects
            $user_id = get_current_user_id();

            $args = array(
              'status' => array( 'active', 'complimentary', 'pending', 'free_trial' ),
            );

            $active_memberships = wc_memberships_get_user_memberships( $user_id, $args );

              //  while ( $loop->have_posts() ) : $loop->the_post();
            if ( ! empty( $active_memberships ) ) {
                                    foreach ( $active_memberships as $plan ) {

                                            $membership_id = $plan->id;
                                            $membership_plan_product_id = get_post_meta($membership_id,'_product_id')[0];

                                        ?>

        <div class="package-list-item">
            <div class="active-package"><i class="fa fa-check" aria-hidden="true"></i></div>
            <a href="javascript:;" class="group-link" data-id="27">
                <figure>
                    <img src="<?php echo get_the_post_thumbnail_url($membership_plan_product_id , 'thumbnail'); ?>" class="img-responsive" style="max-width: 100px; max-height: 100px" alt="">
                    <figcaption><?php echo get_the_title($membership_plan_product_id ); ?></figcaption>
                </figure>
            </a>
        </div>
        <?php

                }}
                //} endwhile;
          //  } else {
          //  echo __( 'No packages found' );
          //  }
        //    wp_reset_postdata(); ?>
    </div>
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44937466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档