добавляем в php скрипт
wp_enqueue_script( 'bundle', plugins_url( '/bundle.js', __FILE__ ), array('jquery'), '1.11', true );
wp_localize_script( 'bundle', 'MyAjax', array(
'ajaxurl' => admin_url('admin-ajax.php'),
'nonce' => wp_create_nonce('myajax-nonce')
) );
это код функции с одного моего проекта, но смысл тот же - из jQuere.ajax посылаем переменные и в базу данных
add_action( 'wp_ajax_cr_new_patient', 'cr_new_patient' );
function cr_new_patient() {
$nonce = $_POST['nonce'];
if(wp_verify_nonce( $nonce, 'myajax-nonce' )){
$id = sanitize_text_field($current_user->user_login);
$ur = sanitize_text_field($_POST["patient_ur"]);
$dob = sanitize_text_field($_POST["patient_dob"]);
$gender = sanitize_text_field($_POST["patient_gender"]);
$ident = sanitize_text_field($_POST["patient_ident"]);
$other = sanitize_text_field($_POST["patient_other"]);
$loc = sanitize_text_field($_POST["patient_loc"]);
$query="INSERT INTO patient (
'ur', 'dob', 'gender', 'ident', 'other', 'loc'
) VALUES (
'$ur', '$dob', '$gender', '$ident', '$other', '$loc',
)";
$mysqli = new mysqli("xxx","xxx","xxx","xxx");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
сам js такой
handleSubmit(data) {
jQuery.post(
MyAjax.ajaxurl,
{
'action': 'cr_new_patient',
'patient_ur': data.patient_ur,
'patient_dob': data.patient_dob,
'patient_gender': data.patient_gender,
'patient_ident': data.patient_ident,
'patient_other': data.patient_other,
'patient_loc': data.patient_loc,
'nonce' : MyAjax.nonce
},
function(response){
alert('The server responded: ' + response);
}
);
}