WooCommerce новое почтовое уведомление для категории продукта - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть пара продуктов, каждый из которых связан с планом членства WooCommerce, каждый план ограничивает определенную категорию сообщений, поэтому клиент может просматривать сообщения категории только после приобретения продукта, чей план членства ограничивает эту категорию.

Теперь для каждого нового сообщения, которое я хотел бы отправить по электронной почте клиенту, который приобрел продукт, с ограничением этой категории сообщений, было опубликовано новое сообщение.Есть ли способ сделать это?

Для более подробной информации это так:

У меня есть Product_A и Product_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 голосов
/ 04 марта 2019

Мне удалось сделать это так, что это вызвало бы какие-либо проблемы в долгосрочной перспективе или это нормально?

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 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...