#javascript #jquery #wordpress
#javascript #jquery #wordpress
Вопрос:
я пытался сделать переключатель в своем поле, вот так :
function orderMB_meta_box_output( $post ) {
// create a nonce field
wp_nonce_field( 'my_orderMB_meta_box_nonce', 'orderMB_meta_box_nonce' ); ?>
<p>
<label><b>Status Order :</b></label>
<br />
<input type="radio" name="status_order" value="Process Packing" <?php echo ($value[0] == 'Process Packing')? 'checked="checked"':''; ?> >Process Packing<br>
<input type="radio" name="status_order" value="Shipping" <?php echo ($value[0] == 'Shipping')? 'checked="checked"':''; ?> >Shipping<br>
<input type="radio" name="status_order" value="Arrive" <?php echo ($value[0] == 'Arrive')? 'checked="checked"':''; ?> >Arrive<br>
<input type="radio" name="status_order" value="Success" <?php echo ($value[0] == 'Success')? 'checked="checked"':''; ?> >Success<br>
</p>
<?php
}
function orderMB_meta_box_save( $post_id ) {
// Stop the script when doing autosave
if( defined( 'DOING_AUTOSAVE' ) amp;amp; DOING_AUTOSAVE ) return;
// Verify the nonce. If insn't there, stop the script
if( !isset( $_POST['orderMB_meta_box_nonce'] ) || !wp_verify_nonce( $_POST['orderMB_meta_box_nonce'], 'my_orderMB_meta_box_nonce' ) ) return;
// Stop the script if the user does not have edit permissions
if( !current_user_can( 'edit_post' ) ) return;
update_post_meta( $post_id, 'orderno', esc_attr( $_POST['orderno'] ) );
$allowed = array('Process Packing','Shipping','Arrive','Success');
if( isset( $_POST['status_order'] ) amp;amp; in_array($_POST['status_order'], $allowed))
update_post_meta( $post_id, 'status_order', esc_attr( $_POST['status_order'] ) );
}
add_action( 'save_post', 'orderMB_meta_box_save' );
Я думаю, что мой код правильный и он работает, но почему моя кнопка переключения обычно проверяется.
кто-нибудь может мне помочь?
Комментарии:
1. откуда
$value[0]
взялся2. некоторые пользователи говорят мне использовать это, но не знают. правильно или нет, было ли решение?
3. это переменная, мой человек, основы основ
4. переменная содержит значение, присвоенное ранее в вашем коде, можете ли вы указать это значение?
Ответ №1:
Вы пропустили строку для получения значений из базы данных, которые хранятся в соответствии с текущим идентификатором записи..
$status_order = get_post_meta( $post->ID, 'status_order', true );
Ваша функция должна иметь строку выше, чтобы получить значение и проверить его с помощью var_dump()
.
удалите var_dump, если значение отлично отображается / проверил ваши переключатели.
function orderMB_meta_box_output( $post ) {
// create a nonce field
wp_nonce_field( 'my_orderMB_meta_box_nonce', 'orderMB_meta_box_nonce' );
$status_order = get_post_meta( $post->ID, 'status_order', true );
var_dump($status_order); // dump to check database value
?>
<p>
<label><b>Status Order :</b></label>
<br />
<input type="radio" name="status_order" value="Process Packing" <?php echo ($status_order == 'Process Packing')? 'checked="checked"':''; ?> >Process Packing<br>
<input type="radio" name="status_order" value="Shipping" <?php echo ($status_order == 'Shipping')? 'checked="checked"':''; ?> >Shipping<br>
<input type="radio" name="status_order" value="Arrive" <?php echo ($status_order == 'Arrive')? 'checked="checked"':''; ?> >Arrive<br>
<input type="radio" name="status_order" value="Success" <?php echo ($status_order == 'Success')? 'checked="checked"':''; ?> >Success<br>
</p>
<?php
}