基于“在 woocommerce 管理订单列表顶部添加按钮”答案代码,我能够在 woocommerce 管理订单列表中添加自定义按钮。
这是代码(轻微定制):
add_action( 'manage_posts_extra_tablenav', 'admin_order_list_top_bar_button', 20, 1 );
function admin_order_list_top_bar_button( $which ) {
global $typenow;
if ( 'shop_order' === $typenow && 'top' === $which ) {
?>
<div class="alignleft actions custom">
<button type="submit" name="custom_" style="height:32px;" class="button" value=""><?php
echo __( 'Import Couriers', 'woocommerce' ); ?></button>
</div>
<?php
}
}
现在,当单击此自定义按钮时,我需要运行以下函数:
function update_shipping_couriers_meta_field() {
$dir = __DIR__;
$couriers = file( $dir . '/import-couriers.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
$count = count(couriers);
$i = 1;
do {
if ( !empty( $couriers ) ) {
foreach ( $couriers as $a ) {
if ( !empty( $a ) ) {
$rows = explode(';', $a);
$id = $rows[0];
$id = int($id);
$couriers = $rows[1];
update_post_meta( $id, '_shipping_couriers', $couriers );
}
$i++;
}
}
}
while ( $i <= $count );
}
实际上,该函数会根据特定的订单 ID 更新“_shipping_couriers”自定义字段。这两个值存在于一个 csv 文件中。
我已经对其进行了测试,并且可以正常工作。当我单击使用上述功能创建的按钮时,我“只是”让它运行。
单击按钮时如何运行我的函数?