如何在 woocommerce 管理员订单详细信息页面上添加操作按钮

How to add action button on woocommerce admin order detail page

在 Woocommerce 中,我添加了带有元框的按钮,但是在显示订单已更新的管理订单详细信息页面上单击该按钮时,下一个功能未执行。

这是我的代码:

add_action( 'add_meta_boxes', 'add_meta_boxesws' );
function add_meta_boxesws()
{
    add_meta_box( 
        'add_meta_boxes', 
        __( 'Custom' ), 
        'sun'
    );
}

function sun(){
    echo '<input type="hidden" value="abc" name="abc"/>';
    echo '<p><button id="mybutton" type="submit">Return Shipment</button></p>';
}

if ( !empty( $_POST['abc'] ) )  {
    function call_this(){
        echo "hello";    
    }
    add_action('dbx_post_sidebar','call_this');
}

任何帮助将不胜感激。

最好使用 GET 方法并在按钮本身下方的元框内容中显示结果。所以你将用 <a href=""> html 标签替换你 <button>

您重访的代码:

// Add a custom metabox only for shop_order post type (order edit pages)
add_action( 'add_meta_boxes', 'add_meta_boxesws' );
function add_meta_boxesws()
{
    add_meta_box( 'custom_order_meta_box', __( 'My Title' ),
        'custom_metabox_content', 'shop_order', 'normal', 'default');
}

function custom_metabox_content(){
    $post_id = isset($_GET['post']) ? $_GET['post'] : false;
    if(! $post_id ) return; // Exit

    $value="abc";
    ?>
        <p><a href="?post=<?php echo $post_id; ?>&action=edit&abc=<?php echo $value; ?>" class="button"><?php _e('Return Shipment'); ?></a></p>
    <?php
    // The displayed value using GET method
    if ( isset( $_GET['abc'] ) && ! empty( $_GET['abc'] ) ) {
        echo '<p>Value: '.$_GET['abc'].'</p>';
    }
}

代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。

提交后: