在 WooCommerce 中添加自定义批量订单操作可以让你更高效地管理订单,特别是当你需要对多个订单执行特定的自定义操作时。例如,你可能想要为选定的订单批量添加一个特定的计算或更新订单状态。以下是如何在 WooCommerce 中添加自定义批量订单操作的步骤:
首先,你需要通过 WordPress 的 bulk_actions-edit-shop_order
钩子(hook)添加一个新的批量操作选项。以下是如何添加这个操作的示例代码,你可以将此代码添加到你的主题的 functions.php
文件中或在一个自定义插件中使用:
function add_custom_bulk_action($bulk_actions) {
$bulk_actions['custom_calculation'] = '执行自定义计算'; // 'custom_calculation' 是内部使用的 ID,'执行自定义计算' 是在下拉菜单中显示的文本
return $bulk_actions;
}
add_filter('bulk_actions-edit-shop_order', 'add_custom_bulk_action');
添加操作后,你需要处理这个操作。当管理员选择这个操作并提交后,你需要捕捉这个请求并执行相应的逻辑。这可以通过 handle_bulk_actions-edit-shop_order
钩子来实现:
function handle_custom_bulk_action($redirect_to, $action, $post_ids) {
if ($action === 'custom_calculation') {
foreach ($post_ids as $post_id) {
// 对每个订单执行操作
// 例如,更新订单元数据或执行计算
update_post_meta($post_id, '_custom_meta_key', '新值');
}
// 重定向 URL,添加自定义参数
$redirect_to = add_query_arg('custom_calc_done', count($post_ids), $redirect_to);
}
return $redirect_to;
}
add_filter('handle_bulk_actions-edit-shop_order', 'handle_custom_bulk_action', 10, 3);
操作完成后,你可能想要显示一个通知,告诉用户操作已成功执行。你可以通过检查 URL 参数来添加这个通知:
function custom_bulk_action_admin_notice() {
if (!empty($_REQUEST['custom_calc_done'])) {
$count = intval($_REQUEST['custom_calc_done']);
echo '<div id="message" class="updated fade"><p>' .
sprintf('自定义计算已成功执行 %d 个订单。', $count) . '</p></div>';
}
}
add_action('admin_notices', 'custom_bulk_action_admin_notice');
通过以上步骤,你已经成功添加了一个自定义的批量操作到 WooCommerce 订单列表。这个操作可以让你对选定的多个订单执行自定义计算或更新。
确保在实际部署这些代码之前在开发环境中进行充分测试,以确保它们按预期工作,并且不会对现有数据造成意外的影响。此外,根据你的具体需求调整和扩展这些基本示例。
领取专属 10元无门槛券
手把手带您无忧上云