Admin menuye bazı eklemelr yaptım oluşturduğum checxbox kutusunu çoğaltmak istiyorum ancak kodu çoğaltığım da sanırım check_ajax_referer kaynaklı olduğu için ilk checxbox değerini alıyor. yardımcı olabilecek var mı kodu multi yapmalıyım.
add_filter( 'manage_edit-post_columns', 'ana_slider_extra_column', 20 );
function ana_slider_extra_column( $columns_array ) {
$columns_array['ana_slider'] = 'A.S.';
// remember that you can add this column at any place you want with array_slice() function
return $columns_array;
}
add_action( 'manage_posts_custom_column', 'ana_slider_populate_columns' );
function ana_slider_populate_columns( $column_name ) {
if( $column_name == 'ana_slider' ) {
echo '<input type="checkbox" data-postid="' . get_the_ID() .'" class="some_checkbox" ' . checked( '1', get_post_meta( get_the_ID(), '_on_main_slider', true ), false ) . '/><small style="display:block;color:#7ad03a"></small>';
}
}
add_action( 'admin_footer', 'ana_slider_jquery_event' );
function ana_slider_jquery_event(){
echo "<script>jQuery(function($){
$('.some_checkbox').click(function(){
var checkbox = $(this),
checkbox_value = (checkbox.is(':checked') ? '1' : '0' );
$.ajax({
type: 'POST',
data: {
action: 'postmetasave', // wp_ajax_{action} WordPress hook to process AJAX requests
value: checkbox_value,
post_id: checkbox.attr('data-postid'),
myajaxnonce : '" . wp_create_nonce( "activatingcheckbox" ) . "'
},
beforeSend: function( xhr ) {
checkbox.prop('disabled', true );
},
url: ajaxurl, // as usual, it is already predefined in /wp-admin
success: function(data){
checkbox.prop('disabled', false ).next().html(data).show().fadeOut(400);
}
});
});
});</script>";
}
add_action( 'wp_ajax_postmetasave', 'ana_slider_process_ajax' );
function ana_slider_process_ajax(){
check_ajax_referer( 'activatingcheckbox', 'myajaxnonce' );
if( update_post_meta( $_POST[ 'post_id'] , '_on_main_slider', $_POST['value'] ) ) {
echo 'Eklendi';
}
die();
}