如何在WooCommerce后台订单列表添加带支付URL的自定义列
WooCommerce后台订单列表新增支付链接列修复方案
现有代码错误说明
- 列标识不匹配:第一段代码注册的自定义列键名为
wc_order,但第二段代码中判断列名用的是custom_column,二者不一致导致列内容无法输出 - 逻辑嵌套错误:第二段代码重复注册钩子、重复定义同名函数,且嵌套在判断分支内部,逻辑完全无法正常执行
- 变量未定义:代码中调用
wc_get_order($order_id)时,$order_id没有提前赋值,会触发PHP报错中断运行
修复代码
直接替换你之前的两段代码即可,支持直接输出可点击的支付链接:
// 注册自定义支付链接列 add_filter( 'manage_edit-shop_order_columns','hbm_order_key_column'); function hbm_order_key_column($columns) { $columns['wc_order_pay_link'] = "Link Pay Order"; return $columns; } // 输出列对应内容 add_action( 'manage_shop_order_posts_custom_column' , 'render_pay_link_column', 10, 2 ); function render_pay_link_column( $column, $post_id ) { global $the_order; if( $column == 'wc_order_pay_link' ) { $pay_now_url = esc_url( $the_order->get_checkout_payment_url() ); // 直接展示链接文本用下方代码 // echo $pay_now_url; // 输出可点击跳转的链接用下方代码 echo '<a href="'.$pay_now_url.'" target="_blank">去支付</a>'; } }
提示:代码放入当前主题的functions.php文件或者自定义功能插件中,保存后刷新订单列表即可生效
内容的提问来源于stack exchange,提问作者ujang giroud
相关产品推荐
相关产品推荐

