在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');
}
任何帮助将不胜感激。
答案 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文件中。经过测试和工作。
提交后: