首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新订单状态的Dokan操作

更新订单状态的Dokan操作
EN

Stack Overflow用户
提问于 2020-08-02 02:49:03
回答 1查看 406关注 0票数 0

我需要在订单页上的多坎行动的帮助。目前我在这里有两个动作,标记订单完成或正在处理。我想要的是创建操作来标记订单已取消和暂挂。

我访问了包含这两个操作的文件,它们在文件Ajax.php中:

代码语言:javascript
复制
  add_action( 'wp_ajax_dokan-mark-order-complete', array( $this, 'complete_order' ) );
  add_action( 'wp_ajax_dokan-mark-order-processing', array( $this, 'process_order' ) );

有没有一种方法来定义类似的动作:

代码语言:javascript
复制
add_action( 'wp_ajax_dokan-mark-order-cancelled', array( $this, 'cancel_order' ) );
EN

回答 1

Stack Overflow用户

发布于 2020-08-27 23:05:15

我已经执行了一个自定义操作,将订单标记为已发运(自定义状态):

首先,您可以添加以下代码以将/Ajax.php>包含在__construct函数中。

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

然后,您必须包含自定义函数(在同一文件中):

代码语言:javascript
复制
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:

代码语言:javascript
复制
'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' ),

如果你需要任何帮助,请告诉我

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63208888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档