将操作按钮和“控制器”添加到订单列表管理员-WooCommerce

问题描述

几个小时以来,我一直在尝试添加带有“控制器”部分的操作按钮来接收请求。

我尝试添加一个真正的“操作按钮”,但是它不起作用。我从许多StackOverflow帖子中尝试了很多方法,但是没有用。

因此,我将链接添加到自定义列:

add_filter( 'manage_edit-shop_order_columns','custom_set_order_columns' );
function custom_set_order_columns($columns){
    $new_columns = (is_array($columns)) ? $columns : array();
    unset( $new_columns['order_actions'] );
        unset( $new_columns['order_total'] );

    $new_columns['test_button'] = 'Test';
    $new_columns['order_actions'] = $columns['order_actions'];

    return $new_columns;
}

设置列值:

add_action( 'manage_shop_order_posts_custom_column','custom_set_order_column_values',2 );
function custom_set_order_column_values($column){
    global $post;

    $order = wc_get_order( $post->ID );
    $email = $order->get_billing_email();
    $admin_ajax_url = admin_url("admin-ajax.php");

    $link_btn = "<a href='#' class='button button-primary' onclick='start(\"$email\",\"$admin_ajax_url\")'>Start</a>";
    
  if ( $column == 'test_button' ) {
    echo $link_btn;
  }
}

JS部分:

function start(email,adminAjaxUrl) {
  jQuery.ajax({
      url : adminAjaxUrl,type : 'POST',data : {
          action : 'test_button_post',param1: email
      },success : function( response ) {
        var success = JSON.parse(response)['success'] == "true";
        if (success) {
          jQuery('#wpbody-content .wrap ul').before('<div class="notice notice-success"><p>' + response['message'] + '</p></div>');
        } else {
          jQuery('#wpbody-content .wrap ul').before('<div class="notice notice-info"><p>' + response['message'] + '</p></div>');
        }
      }
  });
}

WP AJAX

add_action( 'wp_ajax_test_button_post','test_button_post' );
function test_button_post() {
  if (!($_SERVER['REQUEST_METHOD'] === 'POST')) {
    die();
  }

  $response['success'] = "true";
  $response['email'] = $_REQUEST['param1'];
  $response['message'] = "some message";
  echo json_encode($response);
  die();
}

由于我不经常使用WordPress / WooCommerce,对我来说似乎很困难。 我不需要AJAX POST。我想知道一种在订单列表中添加真实按钮的方法,单击该按钮后,请求转到诸如“ test_button_post()”之类的方法,然后在该方法内部呈现通知消息和页面自动重定向。

类似的东西:
单击按钮-> test_button_post方法(充当控制器),然后重定向以显示通知消息。

在test_button_post方法中,我需要获取参数并向外部API发出请求,然后显示结果。

我不知道这样做是否正确。

WordPress版本:5.5
WooCommerce版本:4.4.1

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...