Benutzerdefiniertes Benutzerfeld mit Checkbox

Ich habe ein Front-End erstellt, damit Benutzer ihr Profil ansehen und bearbeiten können. Nun, hier habe ich eine Ajax-Checkbox, um zu bestätigen, ob der Benutzer Newsletter abonniert hat oder nicht. Die Einstellung funktioniert gut im WordPress-Dashboard und je nachdem, was der Benutzer ausgewählt hat, wird es auch im Frontend angezeigt. Die Einstellung wird jedoch nicht vom Front-End gespeichert, obwohl sie erfolgreich ist.

So sieht die functions.php aus ..

// Newsletter custom field add_action('show_user_profile', 'sdvr_user_profile_edit_action'); add_action('edit_user_profile', 'sdvr_user_profile_edit_action'); function sdvr_user_profile_edit_action($user) { $checked = (isset($user->newsletter_status) && $user->newsletter_status) ? ' checked="checked"' : ''; ?> 

Newsletter

<?php } add_action('personal_options_update', 'sdvr_user_profile_update_action'); add_action('edit_user_profile_update', 'sdvr_user_profile_update_action'); function sdvr_user_profile_update_action($user_id) { update_user_meta($user_id, 'newsletter_status', isset($_POST['newsletter_status']) ? 1 : 0); } // Ajax call for newsletter add_action( 'wp_ajax_sdvr_action', 'sdvr_user_profile_update_action' ); add_action( 'wp_ajax_nopriv_sdvr_action', 'sdvr_user_profile_update_action' );

Und das ist der Front-End-Code ..

 ID, 'newsletter_status', true)) ? ' checked="checked"' : ''; ?>   jQuery(function($) { var $form = $('form.newsletter'), $checkbox = $form.find('input[type=checkbox]'); $checkbox.on('change', function() { $form.submit(); }) $form.on('submit', function() { var $data = $(this).serialize(); $.ajax({ url : '' + '/wp-admin/admin-ajax.php', type : 'POST', data : $data + '&action=sdvr_user_profile_update_action', beforeSend: function() { console.log('Updating..'); }, success : function( response ) { console.log('Success'); }, complete: function() { console.log( "Field updated"); }, error: function(err) { console.log(err); } }); return false; }); });  

Solutions Collecting From Web of "Benutzerdefiniertes Benutzerfeld mit Checkbox"