I notice a couple of things.
First, your callback uses two parameters but you don’t ask for the second parameter when you hook it in. This:
add_action( 'save_post', 'kasparibi_left_menu_meta_save' );
Should be:
add_action( 'save_post', 'kasparibi_left_menu_meta_save' ,1 ,2 );
But, on the other hand, I don’t see where you use that parameter at all. Maybe I missed it. You could probably just leave that second parameter out of the callback.
The real problem is here though:
<?php (get_post_meta( $post->ID, 'left_menu_checkbox', true) == 'on') ? ' checked="checked"' : ''; ?>
You don’t echo
the checked
attribute.
<?php echo (get_post_meta( $post->ID, 'left_menu_checkbox', true) == 'on') ? ' checked="checked"' : ''; ?>
In other words, the value does save, but your code does not display the checked status correctly.
You could simplify that line with WordPress’s checked
function though.
<?php checked(get_post_meta( $post->ID, 'left_menu_checkbox', true),'on',true) ?>