function ct_ajax_add_to_wishlist() { $result_json = array('success' => 0, 'result' => ''); if (!is_user_logged_in()) { $result_json['success'] = 0; $result_json['result'] = esc_html__('Please login to update your wishlist.', 'citytours'); wp_send_json($result_json); } $user_id = get_current_user_id(); $new_item_id = sanitize_text_field(ct_post_org_id($_POST['post_id'])); $wishlist = get_user_meta($user_id, 'wishlist', true); if (isset($_POST['remove'])) { //remove $wishlist = array_diff($wishlist, array($new_item_id)); if (update_user_meta($user_id, 'wishlist', $wishlist)) { $result_json['success'] = 1; $result_json['result'] = esc_html__('This post has removed from your wishlist successfully.', 'citytours'); } else { $result_json['success'] = 0; $result_json['result'] = esc_html__('Sorry, An error occurred while update wishlist.', 'citytours'); } } else { //add if (empty($wishlist)) { $wishlist = array(); } if (!in_array($new_item_id, $wishlist)) { array_push($wishlist, $new_item_id); if (update_user_meta($user_id, 'wishlist', $wishlist)) { $result_json['success'] = 1; $result_json['result'] = esc_html__('This post has added to your wishlist successfully.', 'citytours'); } else { $result_json['success'] = 0; $result_json['result'] = esc_html__('Sorry, An error occurred while update wishlist.', 'citytours'); } } else { $result_json['success'] = 1; $result_json['result'] = esc_html__('Already exists in your wishlist.', 'citytours'); } } wp_send_json($result_json); }
function ct_get_reviews($post_id, $start_num = 0, $per_page = 10) { global $wpdb; $post_id = ct_post_org_id($post_id); $sql = "SELECT * FROM " . CT_REVIEWS_TABLE . " WHERE post_id='" . esc_sql($post_id) . "' AND status='approved' ORDER BY id DESC LIMIT " . esc_sql($start_num) . ", " . esc_sql($per_page); $results = $wpdb->get_results($sql, ARRAY_A); return $results; }
function ct_review_save_action() { if (!isset($_POST['review_save']) || !wp_verify_nonce($_POST['review_save'], 'ct_review_manage')) { print 'Sorry, your nonce did not verify.'; exit; } else { global $wpdb; $default_review_data = array('post_id' => '', 'review_rating' => 0, 'review_rating_detail' => '', 'review_text' => '', 'reviewer_ip' => '127.0.0.1', 'reviewer_email' => '', 'reviewer_name' => '', 'status' => 'pending', 'date' => date('Y-m-d H:i:s'), 'user_id' => '', 'booking_no' => '', 'pin_code' => ''); $table_fields = array('reviewer_name', 'reviewer_email', 'reviewer_ip', 'review_text', 'post_id', 'status', 'date', 'user_id', 'booking_no', 'pin_code'); //review_rating, review_rating_detail, date $data = array(); foreach ($table_fields as $table_field) { if (!empty($_POST[$table_field])) { $data[$table_field] = sanitize_text_field($_POST[$table_field]); } } $data['review_rating_detail'] = serialize($_POST['review_rating_detail']); $data['review_rating'] = round(array_sum($_POST['review_rating_detail']) / count($_POST['review_rating_detail']), 1); $data = array_replace($default_review_data, $data); $data['post_id'] = ct_post_org_id($data['post_id']); if (empty($_POST['id'])) { //insert $wpdb->insert(CT_REVIEWS_TABLE, $data); $id = $wpdb->insert_id; } else { //update $wpdb->update(CT_REVIEWS_TABLE, $data, array('id' => sanitize_text_field($_POST['id']))); $id = sanitize_text_field($_POST['id']); } ct_review_calculate_rating($data['post_id']); wp_redirect(admin_url('admin.php?page=reviews&action=edit&review_id=' . $id . '&updated=true')); exit; } }