wp_insert_post, когда пользователь покупает подписку на woocommerce - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь создать новый пост в моем пользовательском типе поста «vipmembers», как только пользователь купит подписку на членство в woocommerce (роль пользователя «подписчик»). Приведенный ниже код позволяет мне добавлять новые сообщения только в том случае, если пользователь является клиентом (т. Е. Когда пользователь регистрируется), но я хочу, чтобы публикация добавлялась только после того, как пользователь приобретает продукт подписки на членство в woocommerce (т. Е. Когда роль пользователя - Подписчик).

Любая помощь будет оценена.

add_action( 'user_register', 'membership_import', 10, 1 );
function membership_import( $user_id ) {
  if($user_id){
    $args = array(
      'post_type'     => 'vipmembers',
      'meta_query'    => array(
        array(
          'key'       => 'user_id',
          'value'     => $user_id,
          'compare'   => '='
        )
      )
    );

    $users_exists = get_posts( $args );
    $author_obj = get_user_by('id', $user_id);
    $roles = $author_obj->roles;
    $post = array(
      'post_title' => wp_strip_all_tags($author_obj->user_login),
      'post_status' => 'publish',
      'post_type' => 'vipmembers'
    );
    if(empty($users_exists)){
      $post_ID = wp_insert_post($post);
      update_post_meta($post_ID, 'user_id',$user_id);
      update_post_meta($post_ID, 'user_email',$author_obj->user_email);
    }
  }
} 

1 Ответ

0 голосов
/ 26 января 2019

все равно получил решение, просто изменил

add_action( 'user_register', 'membership_import', 10, 1 );
function membership_import( $user_id ) {

с

add_action( 'woocommerce_thankyou', 'membership_import');
function membership_import( $order_id ) {

:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...