woocommerce - 如何在 WooCommerce 中按付款方式对订单进行排序?
问题描述
我只想查看那些由 BACS/PayPal 购买的订单?我可以通过 WooCommerce >> 订单在管理员中按付款方式对订单进行排序吗?
解决方案
在活动主题的 functions.php 中添加以下代码片段 -
/**
* Add payment method bulk filter for orders
*/
function add_filter_by_payment_method_orders() {
global $typenow;
if ( 'shop_order' === $typenow ) {
// get all payment methods
$gateways = WC()->payment_gateways->payment_gateways();
?>
<select name="_shop_order_payment_method" id="dropdown_shop_order_payment_method">
<option value=""><?php esc_html_e( 'All Payment Methods', 'text-domain' ); ?></option>
<?php foreach ( $gateways as $id => $gateway ) : ?>
<option value="<?php echo esc_attr( $id ); ?>" <?php echo esc_attr( isset( $_GET['_shop_order_payment_method'] ) ? selected( $id, $_GET['_shop_order_payment_method'], false ) : '' ); ?>>
<?php echo esc_html( $gateway->get_method_title() ); ?>
</option>
<?php endforeach; ?>
</select>
<?php
}
}
add_action( 'restrict_manage_posts', 'add_filter_by_payment_method_orders', 99 );
/**
* Process bulk filter order for payment method
*
*/
function add_filter_by_payment_method_orders_query( $vars ) {
global $typenow;
if ( 'shop_order' === $typenow && isset( $_GET['_shop_order_payment_method'] ) ) {
$vars['meta_key'] = '_payment_method';
$vars['meta_value'] = wc_clean( $_GET['_shop_order_payment_method'] );
}
return $vars;
}
add_filter( 'request', 'add_filter_by_payment_method_orders_query', 99 );
推荐阅读
- mysql - 如何修复mysql中的查询
- wordpress - 将 Slider Revolution 更新到最新版本 6.0.6 后出错 :: ReferenceError: setREVStartSize is not defined
- javascript - 如何在 Vue.js 中删除 FullCalendar-4 事件
- c# - 我在统一复制门时遇到问题
- javascript - 创建一个算法来定义 Javascript 中字符串的匹配概率
- c# - 如何最好地在 ASP.NET Core 中实现 Google 社交登录身份验证?
- visual-studio-app-center - Appcenter 通知管理(查看/隐藏某些用户的功能)
- html - CSS过滤器亮度:它可以分别应用于一个元素的边框和主体吗?
- solidity - 这是混音、编译器还是 openzeplin 错误?
- c++ - 比较从 Lua 中的 C 函数推送的字符串失败,除非复制到新字符串