У меня есть следующий фрагмент кода, который публикует сообщение пользователя, пока они приобрели пакет подписки, и он изменяет статус сообщения на черновик, как только истекает срок их действия. Мне просто интересно, как мне отредактировать его, чтобы пользователь мог создать сообщение, и сообщение автоматически настроено на черновик, а затем статус публикации обновляется до опубликования, как только пользователь завершит оплату пакета? Любая помощь будет принята с благодарностью.
if ( ! in_array( $new_status, array( 'active', 'trial' ) ) ) { $user_limits = stm_get_post_limits( $user_id ); $posts_args = array( 'orderby' => 'post_date', 'order' => 'DESC', 'post_type' => 'listings', 'post_status' => 'publish', 'posts_per_page' => - 1, 'meta_query' => array( array( 'key' => 'stm_car_user', 'value' => $user_id, 'compare' => '' ) ), 'fields' => 'ids' ); $user_posts = get_posts( $posts_args ); if ( count( $user_posts ) > $user_limits['posts_allowed'] ) { array_splice( $user_posts, 0, $user_limits['posts_allowed'] ); foreach ( $user_posts as $user_post ) { $draft_post = array( 'ID' => $user_post, 'post_status' => 'draft' ); wp_update_post( $draft_post ); } } /*Change user back to private if not admin*/ if(!user_can($user_id, 'manage_options')) { wp_update_user( array( 'ID' => $user_id, 'role' => 'privateseller' ) ); } } else { /*If plan includes dealeship, change user role to dealer*/ if ( $role == 'dealer' ) { wp_update_user( array( 'ID' => $user_id, 'role' => 'stm_dealer' ) ); } }
Вы рассматривали действие WooCommerce woocommerce_order_status_completed
которое вызывается, когда статус заказа изменен на wc-completed
? Он вызывается с идентификатором заказа и объектом заказа (экземпляр WC_Order), из которого вы можете получить детали заказа.