Есть ли способ установить пользовательский статус заказа для частичного возврата заказа? - PullRequest
0 голосов
/ 10 февраля 2020

Я хотел бы автоматически обновить мой статус заказа WooCommerce до w c -partialRefunded при частичном возврате заказа.

Я успешно создал пользовательский статус заказа и не уверен, как рассчитать количество заказа и получить результат.

Есть ли способ сделать это?

Я пробовал код ниже, чтобы создать статус пользовательского заказа: -

add_filter( 'woocommerce_register_shop_order_post_statuses', 'register_custom_order_status' );

function register_custom_order_status( $order_statuses ){

   // Status must start with "wc-"
   $order_statuses['wc-partialRefunded'] = array(                                 
   'label'                     => _x( 'Partial Refunded', 'Order status', 'woocommerce' ),
   'public'                    => false,                                 
   'exclude_from_search'       => false,                                 
   'show_in_admin_all_list'    => true,                                 
   'show_in_admin_status_list' => true,                                 
   'label_count'               => _n_noop( 'Partial Refunded <span class="count">(%s)</span>', 'Partial Refunded <span class="count">(%s)</span>', 'woocommerce' ),                              
   );      
   return $order_statuses;
}
Показать статус заказа в раскрывающемся списке @ Одиночный заказ и "Массовые действия" @ Заказы
add_filter( 'wc_order_statuses', 'custom_order_status' );


function custom_order_status( $order_statuses ) {      
   $order_statuses['wc-partialRefunded'] = _x( 'Partial Refunded', 'Order status', 'woocommerce' );       
   return $order_statuses;
}

Большое спасибо, Саджидул

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020

Здесь у вас уже есть хук, который изменит статус заказа на ваш пользовательский статус при возврате, в этот хук вы можете добавить необходимые логи c

/**
 * Register Order Status
 */
function register_custom_order_status( $order_statuses ) {
    // Status must start with "wc-"
    $order_statuses['wc-partial-refunded'] = array(                                 
       'label'                     => _x( 'Partial Refunded', 'Order status', 'woocommerce' ),
       'public'                    => false,                                 
       'exclude_from_search'       => false,                                 
       'show_in_admin_all_list'    => true,                                 
       'show_in_admin_status_list' => true,                                 
       'label_count'               => _n_noop( 'Partial Refunded <span class="count">(%s)</span>', 'Partial Refunded <span class="count">(%s)</span>', 'woocommerce' ),                              
    );
    return $order_statuses;
}
add_filter( 'woocommerce_register_shop_order_post_statuses', 'register_custom_order_status' );

/**
 * Show Order Status in the Dropdown @ Single Order and "Bulk Actions" @ Orders
 */
function custom_order_status( $order_statuses ) {      
    $order_statuses['wc-partial-refunded'] = _x( 'Partial Refunded', 'Order status', 'woocommerce' );
    return $order_statuses;
}
add_filter( 'wc_order_statuses', 'custom_order_status' );

function custom_order_status_bulk( $bulk_actions ) {
   // Note: "mark_" must be there instead of "wc"
   $bulk_actions['mark_wc-partial-refunded'] = 'Change status to partial refunded';
   return $bulk_actions;
}
add_filter( 'bulk_actions-edit-shop_order', 'custom_order_status_bulk' );

/**
 * Change Order Status on Refunded
 */
function custom_order_refunded( $order_id, $refund_id ) {
    if( ! $order_id ) return;
    $order = wc_get_order( $order_id );

    // Status without the "wc-" prefix
    $order->update_status( 'partial-refunded' );
}
add_action( 'woocommerce_order_refunded', 'custom_order_refunded', 10, 2 ); 
0 голосов
/ 10 февраля 2020

Это то, что я использовал для создания пользовательского статуса заказа под названием «Выставлен счет». Добавьте это к функциям вашей темы. php

// Новый статус заказа ПОСЛЕ ВУ 2.2

add_action( 'init', 'register_my_new_order_statuses' );

function register_my_new_order_statuses() {
    register_post_status( 'wc-invoiced', array(
        'label'                     => _x( 'Invoiced', 'Order status', 'woocommerce' ),
        'public'                    => true,
        'exclude_from_search'       => false,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               => _n_noop( 'Invoiced <span class="count">(%s)</span>', 'Invoiced<span class="count">(%s)</span>', 'woocommerce' )
    ) );
}

add_filter( 'wc_order_statuses', 'my_new_wc_order_statuses' );

// Register in wc_order_statuses.
function my_new_wc_order_statuses( $order_statuses ) {
    $order_statuses['wc-invoiced'] = _x( 'Invoiced', 'Order status', 'woocommerce' );

    return $order_statuses;
}

источник из: https://wordpress.stackexchange.com/a/199295

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