File: /home/circuix/adrRc/wp-content/themes/estore/inc/admin/meta-boxes.php
<?php
/**
* This function is responsible for rendering metaboxes in single post area
*
* @package ThemeGrill
* @subpackage eStore
* @since eStore 1.0
*/
/**
* Add Meta Boxes.
*/
function estore_add_custom_box() {
// Layout meta option for post and page.
add_meta_box( 'page-layout', esc_html__( 'Select Layout', 'estore' ), 'estore_layout_call', array(
'post',
'page'
), 'side', 'default' );
}
add_action( 'add_meta_boxes', 'estore_add_custom_box' );
/****************************************************************************************/
global $estore_page_specific_layout;
$estore_page_specific_layout = array(
'default-layout' => array(
'id' => 'estore_page_specific_layout',
'value' => 'default_layout',
'label' => esc_html__( 'Default Layout', 'estore' )
),
'right-sidebar' => array(
'id' => 'estore_page_specific_layout',
'value' => 'right_sidebar',
'label' => esc_html__( 'Right Sidebar', 'estore' )
),
'left-sidebar' => array(
'id' => 'estore_page_specific_layout',
'value' => 'left_sidebar',
'label' => esc_html__( 'Left Sidebar', 'estore' )
),
'no-sidebar-full-width' => array(
'id' => 'estore_page_specific_layout',
'value' => 'no_sidebar_full_width',
'label' => esc_html__( 'No Sidebar Full Width', 'estore' )
),
'no-sidebar-content-centered' => array(
'id' => 'estore_page_specific_layout',
'value' => 'no_sidebar_content_centered',
'label' => esc_html__( 'No Sidebar Content Centered', 'estore' )
)
);
/****************************************************************************************/
function estore_layout_call() {
global $estore_page_specific_layout;
estore_meta_form( $estore_page_specific_layout );
}
/**
* Displays metabox to for select layout option
*/
function estore_meta_form( $estore_metabox_field ) {
global $post;
// Use nonce for verification.
wp_nonce_field( basename( __FILE__ ), 'custom_meta_box_nonce' );
foreach ( $estore_metabox_field as $field ) {
$layout_meta = get_post_meta( $post->ID, $field['id'], true );
switch ( $field['id'] ) {
// Layout.
case 'estore_page_specific_layout':
if ( empty( $layout_meta ) ) {
$layout_meta = 'default_layout';
}
?>
<input class="post-format" type="radio" id="<?php echo esc_attr( $field['value'] ); ?>"
name="<?php echo esc_attr( $field['id'] ); ?>"
value="<?php echo esc_attr( $field['value'] ); ?>" <?php checked( $field['value'], $layout_meta ); ?>/>
<label class="post-format-icon"
for="<?php echo esc_attr( $field['value'] ); ?>"><?php echo esc_html( $field['label'] ); ?></label>
<br/>
<?php
break;
}
}
}
/**
* save the custom metabox data
* @hooked to save_post hook
*/
function estore_save_custom_meta( $post_id ) {
global $estore_page_specific_layout;
// Verify the nonce before proceeding.
if ( ! isset( $_POST['custom_meta_box_nonce'] ) || ! wp_verify_nonce( $_POST['custom_meta_box_nonce'], basename( __FILE__ ) ) ) {
return;
}
// Stop WP from clearing custom fields on autosave.
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
return;
}
if ( 'page' === $_POST['post_type'] ) {
if ( ! current_user_can( 'edit_page', $post_id ) ) {
return $post_id;
}
} elseif ( ! current_user_can( 'edit_post', $post_id ) ) {
return $post_id;
}
foreach ( $estore_page_specific_layout as $field ) {
// Execute this saving function.
$old = get_post_meta( $post_id, $field['id'], true );
$new = sanitize_key( $_POST[ $field['id'] ] );
if ( $new && $new != $old ) {
update_post_meta( $post_id, $field['id'], $new );
}
} // end foreach
}
add_action( 'save_post', 'estore_save_custom_meta' );