Обновить статус заказа при отправке формы - PullRequest
0 голосов
/ 30 июня 2019

Я пытаюсь создать форму, которая автоматически обновляет статус заказа после отправки формы.Форма находится на странице сведений о заказе, поэтому я предполагаю, что идентификатор текущей страницы равен orderID.Когда я пытаюсь отправить форму, она просто застревает и ничего не происходит.Я полагаю, что проблема в получении идентификатора заказа и, следовательно, в каком порядке для обновления статуса.

Я нашел хук gform_after_submission и связал его с формой, размещенной на странице сведений о заказе (идентификатор формы 7).Я пытался использовать глобальный $ wpdb;но не совсем уверен, что это правильно.

add_action( 'gform_after_submission', 'set_post_content', 10, 2 );
function update_order_submission( $order_id ) {
global $wpdb;

    //getting orderID
    $order = wc_get_order( $order_id );

    //changing order status
                $order = array();
                $order['ID'] = $order->ID;
                $order['post_status'] = 'wc-completed';

    //updating order
    wp_update_post( $order );
}

Я ожидаю, что после отправки формы статус заказа текущего идентификатора заказа (страницы, с которой была отправлена ​​форма)будет обновляться по мере завершения статуса заказа.

1 Ответ

0 голосов
/ 01 июля 2019

Замените ваш код следующим -

add_action( 'gform_after_submission', 'set_post_content', 10, 2 );
function update_order_submission( $entry, $form ) {
    global $post;

    $order_id = get_the_ID(); // getting orderID
    $order = wc_get_order( $order_id );
    if( $order ) {
        //changing order status
        $order->update_status( 'completed' );
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...