Aktualisieren Sie den Post-Status der Woocommerce-Zahlung

Ich habe den folgenden Codeabschnitt, der den Beitrag eines Benutzers veröffentlicht, solange er ein Abonnementpaket erworben hat und den Status des Beitrags in Entwurf ändert, sobald das Paket abgelaufen ist. Ich frage mich nur, wie ich es bearbeiten, so dass der Benutzer einen Beitrag erstellen kann und der Beitrag automatisch auf Entwurf festgelegt wird und dann der Status des Beitrags aktualisiert wird veröffentlicht, sobald der Benutzer die Zahlung für ein Paket abgeschlossen hat? Jede Hilfe würde sehr geschätzt werden.

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' ) ); } } 

Solutions Collecting From Web of "Aktualisieren Sie den Post-Status der Woocommerce-Zahlung"

Haben Sie die WooCommerce-Aktion woocommerce_order_status_completed berücksichtigt, die woocommerce_order_status_completed wird, wenn der Bestellstatus auf wc-completed geändert wird? Es wird mit der Auftrags-ID und dem Auftragsobjekt (Instanz von WC_Order) aufgerufen, von dem Sie die Details des Auftrags erhalten können.