shop_order管理订单

时间:2016-05-31 08:04:57

标签: wordpress woocommerce

我想在woocommerce的手动管理订单页面添加一个元框。

此元框必须是一个复选框,如果选中该复选框会触发操作 到目前为止,我已经阅读了它需要开始这样的事情

function add_meta_boxes()
 {
add_meta_box( 
    'Meta Box', // ID, should be a string.
    'woocommerce-action-trigger', // Meta Box Title.
    'my_meta_box', // Your call back function, this is where your form field will go.
    'shop_order', // The post type you want this to show up on, can be post, page, or custom post type.
    'side', // The placement of your meta box, can be normal or side.
    'default' // The priority in which this will be displayed.
);
}

然后我需要一个表格,如果管理员选择将触发一个动作

 function triggeraction_meta_box() {
$checkboxMeta = make_action_happen();
}

    <input type="checkbox" name="action" id="action" value="yes" <?php if ( isset ( $checkboxMeta['action'] ) ) checked( $checkboxMeta['action'][0], 'yes' ); ?> />make_action_happen<br />

正如您在此处所看到的,我希望复选框仅在此类订单的woocommerce中取消挂钩,因此只会在此会话的此页面中发生。

任何人请帮助我的编码非常非常基础。

1 个答案:

答案 0 :(得分:0)

    function wporg_add_custom_box() {
    $screens = ['shop_order', 'wporg_cpt'];
    foreach ($screens as $screen) {
        add_meta_box(
            'wporg_box_id',           // Unique ID
            'Custom Meta Box Title',  // Box title
            'wporg_custom_box_html',  // Content callback, must be of type callable
            $screen                   // Post type
        );
    }
}
add_action('add_meta_boxes', 'wporg_add_custom_box');



function wporg_custom_box_html($post)
{
    $value = get_post_meta($post->ID, '_wporg_meta_key', true);
    ?>
    <label for="wporg_field">Description for this field</label>
    <select name="wporg_field" id="wporg_field" class="postbox">
        <option value="">Select something...</option>
        <option value="something" <?php selected($value, 'something'); ?>>Something</option>
        <option value="else" <?php selected($value, 'else'); ?>>Else</option>
    </select>
    <?php
}

function wporg_save_postdata($post_id) {
    if (array_key_exists('wporg_field', $_POST)) {
        update_post_meta(
            $post_id,
            '_wporg_meta_key',
            $_POST['wporg_field']
        );
    }
}
add_action('save_post', 'wporg_save_postdata');