admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('nonce') )); } /** * Create Entry [AJAX Request] */ public function create() { if( isset( $_POST['entry_title'] ) ) { $entry_cat = sanitize_text_field( $_POST['entry_cat'] ); $entry_nonce = sanitize_text_field( $_POST['entry_nonce'] ); $entry_title = sanitize_text_field( $_POST['entry_title'] ); $entry_type = sanitize_text_field( $_POST['entry_type'] ); $entry_amount = sanitize_text_field( $_POST['entry_amount'] ); $entry_global = sanitize_text_field( $_POST['entry_global'] ); $entry_services = sanitize_text_field( $_POST['entry_services'] ); // $entry_fees = sanitize_text_field( $_POST['entry_fees'] ); // Check nonce if ( !wp_verify_nonce($entry_nonce, 'nonce') ) { $return_data['status'] = 'failed'; $return_data['mssg'] = __('Invalid Nonce', 'eagle-booking'); // If everything is ok let's proceed to the deletion } else { // Current Entries $current_entries = get_option( $entry_cat ); if ( empty( $current_entries ) ) { // Set first id to 1 $entry_id = "1"; } else { // Get the last entry $last_array = end( $current_entries ); // Get the id of the latest entry $last_id = $last_array['id']; // Get the last id + 1 $entry_id = ++$last_id; } // New Entry Fields (based on cat) if ( $entry_cat === 'eb_taxes' ){ $new_entries = array( 'id' => $entry_id, 'title' => $entry_title, 'amount' => $entry_amount, 'global' => $entry_global, 'services' => $entry_services, // 'fees' => $entry_fees ); } else { $new_entries = array( 'id' => $entry_id, 'title' => $entry_title, 'type' => $entry_type, 'amount' => $entry_amount, 'global' => $entry_global ); } // First time (doesn't exist yet) if ( empty( $current_entries) ){ update_option( $entry_cat, array( $new_entries ) ); } else { $merged_options = array_merge ( $current_entries , array ( $new_entries ) ); //Update Option update_option( $entry_cat, $merged_options ); } $return_data['status'] = 'success'; $return_data['mssg'] = __('New Entry Added Successfully', 'eagle-booking'); } } else { $return_data['status'] = 'failed'; $return_data['mssg'] = __('No ID', 'eagle-booking'); } // Return all data to json wp_send_json($return_data); wp_die(); } /** * Update Entry [AJAX Request] */ public function update() { // Check if Ajax response and get Ajax variables if (! empty($_POST['entry_id'])) { $entry_nonce = sanitize_text_field( $_POST['entry_nonce'] ); $entry_cat = sanitize_text_field( $_POST['entry_cat'] ); $entry_id = sanitize_text_field( $_POST['entry_id'] ); $entry_title = sanitize_text_field( $_POST['entry_title'] ); $entry_type = sanitize_text_field( $_POST['entry_type'] ); $entry_amount = sanitize_text_field( $_POST['entry_amount'] ); $entry_global = sanitize_text_field( $_POST['entry_global'] ); $entry_services = sanitize_text_field( $_POST['entry_services'] ); // $entry_fees = sanitize_text_field( $_POST['entry_fees'] ); // Check nonce if ( !wp_verify_nonce($entry_nonce, 'nonce') ) { $return_data['status'] = 'failed'; $return_data['mssg'] = __('Invalid Nonce', 'eagle-booking'); // // If everything is ok let's proceed to the deletion } else { // Existing Entries $data = get_option($entry_cat); // Loop the array to find the specific entry foreach( $data as $key => $row ) { if( $row['id'] == $entry_id ) { // Update Entry Fields based on cat if ( $entry_cat === 'eb_taxes' ){ // Set new values $data[$key]['id'] = $entry_id; $data[$key]['title'] = $entry_title; $data[$key]['amount'] = $entry_amount; $data[$key]['global'] = $entry_global; $data[$key]['services'] = $entry_services; // $data[$key]['fees'] = $entry_fees; // break the loop break; } else { // Set new values $data[$key]['id'] = $entry_id; $data[$key]['title'] = $entry_title; $data[$key]['type'] = $entry_type; $data[$key]['amount'] = $entry_amount; $data[$key]['global'] = $entry_global; // break the loop break; } } } update_option($entry_cat, $data); $return_data['status'] = 'success'; $return_data['mssg'] = __('Entry Updated Successfully ', 'eagle-booking'); } } else { $return_data['status'] = 'failed'; $return_data['mssg'] = __('No ID', 'eagle-booking'); } // Return all data to json wp_send_json($return_data); wp_die(); } /** * Delete Entry [AJAX Request]f */ public function delete() { // Check if Ajax response and get Ajax variables if (! empty($_POST['id'])) { $entry_nonce = sanitize_text_field( $_POST['nonce'] ); $entry_cat = sanitize_text_field( $_POST['cat'] ); $entry_id = sanitize_text_field( $_POST['id'] ); // Check nonce if ( !wp_verify_nonce($entry_nonce, 'nonce') ) { $return_data['status'] = 'failed'; $return_data['mssg'] = __('Invalid Nonce', 'eagle-booking'); // If everything is ok let's proceed to the deletion } else { // Existing Entries (tax or fee) $data = get_option($entry_cat); // Loop the array to find the specific entry foreach( $data as $key => $row ) { if( $row['id'] == $entry_id ){ // Dlete the array unset( $data[$key] ); // Stop the loop break; } } update_option($entry_cat, $data); $return_data['status'] = 'success'; $return_data['mssg'] = __('Entry Deleted Successfully ', 'eagle-booking'); } } else { $return_data['status'] = 'failed'; $return_data['mssg'] = __('No ID', 'eagle-booking'); } // Return all data to json wp_send_json($return_data); wp_die(); } /** * On Load Retrive Entries */ public function entries( $cat = '' ) { // Get Entries if( $cat === 'fees' ) { $entry_cat = 'eb_fees'; } else { $entry_cat = 'eb_taxes'; } $entries = get_option($entry_cat); // echo '
'; print_r($entries); echo ''; $html = ''; if ( $entries ) { foreach( $entries as $key => $item ) { $entry_id = !empty( $item["id"] ) ? $item["id"] : ''; $entry_title = !empty( $item["title"] ) ? $item["title"] : ''; $entry_type = !empty( $item["type"] ) ? $item["type"] : ''; $entry_amount = !empty( $item["amount"] ) ? $item["amount"] : ''; $entry_global = !empty( $item["global"] ) ? $item["global"] : ''; $entry_services = !empty( $item["services"] ) ? $item["services"] : ''; // $entry_fees = !empty( $item["fees"] ) ? $item["fees"] : ''; if ( $entry_global == true ) { $entry_global = 'Yes'; } else { $entry_global = 'No'; } if ( $entry_services == true ) { $entry_services = 'Yes'; } else { $entry_services = 'No'; } // if ( $entry_fees == true ) { // $entry_fees = 'Yes'; // } else { // $entry_fees = 'No'; // } $html .= "