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

时间:2018-06-14 20:50:04

标签: php wordpress woocommerce hook-woocommerce meta-boxes

在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');
}

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

最好使用GET方法并在按钮本身下的​​元框内容中显示结果。因此,您将使用<button> html标记替换<a href=""> ...

您重新访问的代码:

// 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文件中。经过测试和工作。

enter image description here

提交后:

enter image description here