WooCommerce产品类别的新邮件通知

时间:2019-02-25 21:24:31

标签: php wordpress woocommerce hook-woocommerce

我有几个产品,每个产品都与WooCommerce会员计划链接,每个计划都限制一个特定的帖子类别,因此客户只有在购买了会员计划限制该类别的产品之后,才能查看该类别的帖子。

现在,对于每一个新帖子,我想向购买该产品的客户发送电子邮件,限制了该帖子的类别,因此已经发布了一个新帖子。有没有办法做到这一点?

要了解更多详细信息,如下所示:

我有Product_AProduct_B

2个帖子类别:Literature and Math

2个会员计划:Plan_Prod_A and Plan_Prod_B

Plan_Prod_A限制类别Literature

Plan_Prod_B restricts Math

要查看“文学”类别的帖子,客户必须购买Product_A,这将授予他使用会员计划Plan_Prod_A的权限。

现在购买后,我需要的是会员资格只要保持有效,对于任何文学类的新发表的帖子,都必须向该客户发送带有该帖子链接的电子邮件,以通知他该新帖子已经发布

1 个答案:

答案 0 :(得分:0)

我设法做到了这一点,从长远来看,这会导致任何问题吗?

function post_unpublished( $new_status, $old_status, $post ) {
            if ( $old_status != 'publish'  &&  $new_status == 'publish' ) {
                    $user_id = get_current_user_id();
                    $post_id = $post->ID;   
               //     if(get_post_meta($post_id,'_wc_memberships_force_public',true)=='yes') return true;
                    $args = array( 'status' => array( 'active' ));   
                    $plans = wc_memberships_get_user_memberships( $user_id, $args );
                    $user_plans = array();
                    foreach($plans as $plan){
                        array_push($user_plans,$plan->plan_id);
                    }

                    $rules = wc_memberships()->get_rules_instance()->get_post_content_restriction_rules( $post_id );

                    foreach($rules as $rule){
                        if(in_array($rule->get_membership_plan_id(), $user_plans)){
                            $post_url = get_permalink( $post_id );                       
                            $subject = 'New Post';                   
                            $message = "A new post came out:\n\n";
                            $message .= $post->post_title . ": " . $post_url;
                            wp_mail( 'email', $subject, $message ); 
                        }

                    }       


            }
        }
        add_action( 'transition_post_status', 'post_unpublished', 10, 3 );