Действие Dokan по обновлению статуса заказа

Мне нужна помощь с действиями докана на странице заказов. В настоящее время у меня есть два действия: отметить, что заказ завершен или находится в обработке. Я хочу создать действие, чтобы пометить заказ как отмененный и отложенный.

Я получил доступ к файлу, содержащему эти два действия, и они находятся в файле Ajax.php:

  add_action( 'wp_ajax_dokan-mark-order-complete', array( $this, 'complete_order' ) );
  add_action( 'wp_ajax_dokan-mark-order-processing', array( $this, 'process_order' ) );

Есть ли способ определить подобное действие:

add_action( 'wp_ajax_dokan-mark-order-cancelled', array( $this, 'cancel_order' ) );

?


person dejan    schedule 01.08.2020    source источник


Ответы (1)


Я уже сделал настраиваемое действие, которое помечает заказ как отправленный (настраиваемый статус):

сначала вы можете добавить следующее, чтобы включить / Ajax.php ›в функцию __construct.

add_action ('wp_ajax_dokan-mark-order-shipped', array ($ this, 'ship_order'));

Затем вы должны включить настраиваемую функцию (в том же файле):

public function ship_order() {
        if ( ! is_admin() ) {
                die();
        }

        if ( ! current_user_can( 'dokandar' ) || 'on' != dokan_get_option( 'order_status_change', 'dokan_selling', 'on' ) ) {
                wp_die( esc_html__( 'You do not have sufficient permissions to access this page.', 'dokan-lite' ) );
        }

        if ( ! check_admin_referer( 'dokan-mark-order-shipped' ) ) {
                wp_die( esc_html__( 'You have taken too long. Please go back and retry.', 'dokan-lite' ) );
        }

        $order_id = ! empty( $_GET['order_id'] ) ? intval( $_GET['order_id'] ) : 0;

        if ( ! $order_id ) {
                die();
        }

        if ( ! dokan_is_seller_has_order( dokan_get_current_user_id(), $order_id ) ) {
                wp_die( esc_html__( 'You do not have permission to change this order', 'dokan-lite' ) );
        }

        $order = dokan()->order->get( $order_id );
        $order->update_status( 'wc-completed' );

        wp_safe_redirect( wp_get_referer() );
        die();
}

затем убедитесь, что вы изменили URL-адрес:

'url' => wp_nonce_url( admin_url( 'admin-ajax.php?action=dokan-mark-order-shipped&order_id=' . dokan_get_prop( $order, 'id' ) ), 'dokan-mark-order-shipped' ),

Пожалуйста, дайте мне знать, если вам понадобится помощь

person ALUAWY ninT    schedule 27.08.2020