In my custom plugin, I have a custom post type and have a custom meta box for it. I have few fields in it, one of it is a check box. I want this check box to be checked by default when I go for a add new post
and then proceed with the selection of the user ie checked/not checked.
I am adding the related codes ie: for the metabox and how I am saving it.
function coupon_add_metabox() {
add_meta_box( 'coupon_details', __( 'Coupon Details', 'domain' ), 'wpse_coupon_metabox', 'coupons', 'normal', 'high' );
}
function wpse_coupon_metabox( $post ) {
// Retrieve the value from the post_meta table
$coupon_status = get_post_meta( $post->ID, 'coupon_status', true );
// Checking for coupon active option.
if ( $coupon_status ) {
if ( checked( '1', $coupon_status, false ) )
$active = checked( '1', $coupon_status, false );
}
// Html for the coupon details
$html="";
$html .= '<div class="coupon-status"><label for="coupon-status">';
$html .= __( 'Active', 'domain' );
$html .= '</label>';
$html .= '<input type="checkbox" id="coupon-status-field" name="coupon-status-field" value="1"' . $active . ' /></div>';
echo $html;
}
function wpse_coupons_save_details( $post_id ) {
// If this is an autosave, our form has not been submitted, so we don't want to do anything.
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return $post_id;
// Check the user's permissions.
if ( ! current_user_can( 'activate_plugins' ) )
return $post_id;
$coupon_status = sanitize_text_field( $_POST['coupon-status-field'] );
// Update the meta field in the database.
update_post_meta( $post_id, 'coupon_status', $coupon_status );
}
add_action( 'save_post', 'wpse_coupons_save_details' );