PATH:
home
/
letacommog
/
laindinois
/
OLD
/
wp-content
/
plugins
/
dwt-listing-rest-api
/
classes
/
submit-listing
<?php add_action( 'rest_api_init', 'dwt_listing_submit_listing_get', 0 ); function dwt_listing_submit_listing_get() { register_rest_route( 'downtown/app', '/create-listing/', array( 'methods' => WP_REST_Server::EDITABLE, 'callback' => 'dwt_listing_create_submission', 'permission_callback' => function () { return dwt_listing_basic_auth(); }, ) ); } // Get Listing Form if (!function_exists('dwt_listing_create_submission')) { function dwt_listing_create_submission($request) { //global $dwt_listing_api; global $dwt_listing_options; $user = wp_get_current_user(); $user_id = $user->ID; $list_creatz = $submission = array(); $is_coupon_code = $is_allow_tags = $is_business_hours = $is_price_range = $is_videolink = $is_weblink = false; //package ID $package_id = ''; if( get_user_meta($user_id, 'd_user_package_id', true ) != "" ) { $package_id = get_user_meta($user_id, 'd_user_package_id', true ); } if(!empty($package_id)) { if(get_post_meta($package_id, 'video_listing', true ) !="") { $video_listing = get_post_meta($package_id, 'video_listing', true ); if($video_listing == "yes") { $is_videolink = true; } } if(get_post_meta($package_id, 'website_link', true ) !="") { $web_link = get_post_meta($package_id, 'website_link', true ); if($web_link == "yes") { $is_weblink = true; } } if(get_post_meta($package_id, 'price_range', true ) !="") { $price_range = get_post_meta($package_id, 'price_range', true ); if($price_range == "yes") { $is_price_range = true; } } if(get_post_meta($package_id, 'business_hours', true ) !="") { $business_hours = get_post_meta($package_id, 'business_hours', true ); if($business_hours == "yes") { $is_business_hours = true; } } if(get_post_meta($package_id, 'allow_tags', true ) !="") { $allow_tags = get_post_meta($package_id, 'allow_tags', true ); if($allow_tags == "yes") { $is_allow_tags = true; } } if(get_post_meta($package_id, 'allow_coupon_code', true ) !="") { $coupon_code = get_post_meta($package_id, 'allow_coupon_code', true ); if($coupon_code == "yes") { $is_coupon_code = true; } } } //Categories $listing_cats = dwt_listing_categories_fetch('l_category' , 0 ); $list_categories = array(); if(!empty($listing_cats) && is_array($listing_cats) && count($listing_cats) > 0) { foreach($listing_cats as $cat) { $list_categories[] = array("category_id" =>$cat->term_id,"category_name" =>dwt_listing_convert_uniText($cat->name)); } } //Price Types $price_type = dwt_listing_categories_fetch('l_price_type' , 0 ); $list_types = array(); if(!empty($price_type) && is_array($price_type) && count($price_type) > 0) { foreach($price_type as $price_types) { $list_types[] = array("id" =>$price_types->term_id,"name" =>dwt_listing_convert_uniText($price_types->name)); } } //Currency $listing_currency = dwt_listing_categories_fetch('l_currency' , 0 ); $currencies = array(); if(!empty($listing_currency) && is_array($listing_currency) && count($listing_currency) > 0) { foreach($listing_currency as $currency) { $currencies[] = array("id" =>$currency->term_id.'|'.dwt_listing_convert_uniText($currency->name),"name" =>dwt_listing_convert_uniText($currency->name)); } } //Business Hours $hours[] = array("text" =>esc_html__("N/A", "dwt-listing-api"),"value" => 0); $hours[] = array("text" =>esc_html__("Open 24/7", "dwt-listing-api") ,"value" => 1); $hours[] = array("text" =>esc_html__("Selective Hours", "dwt-listing-api") ,"value" => 2); // Days $dayss = dwt_listing_week_days(); foreach( $dayss as $key => $val ) { $days[] = array("day_name" => $val, "start_time" => '', "end_time" => '', "closed" => ''); } $get_brand_img = ''; $get_brand_img = dwt_listing_get_brand_img("",'dwt_listing_list-view1'); //Get countries $countries = dwt_listing_categories_fetch('l_location' , 0 ); $get_locations = array(); foreach( $countries as $country ) { $get_locations[] = array("location_id" =>$country->term_id,"name" =>dwt_listing_convert_uniText($country->name)); } //Selected $loc_lvl_1 = esc_html__('Select Your Country', 'dwt-listing-api' ); if( dwt_listing_text('sb_location_titles') != "" ) { $titles_array = explode("|", dwt_listing_text('sb_location_titles') ); if( count( $titles_array ) > 0 ) { if( isset( $titles_array[0] ) ) $loc_lvl_1 = $titles_array[0]; } } $has_gallery = false; $galleryz = array(); if(get_user_meta($user_id, 'listing_in_progress', true ) !="") { $listing_id = get_user_meta($user_id, 'listing_in_progress', true ); if( get_post_status ( $listing_id ) && $listing_id != "" && get_post_status( $listing_id ) == 'pending') { $listing_id = $listing_id; $mediaz = dwt_listing_fetch_listing_gallery($listing_id); if( count((array) $mediaz ) > 0 ) { $has_gallery = true; foreach( $mediaz as $m ) { $mid = ''; if ( isset( $m->ID ) ) { $mid = $m->ID; } else { $mid = $m; } $full_img = $thumb_imgs = ''; $full_img = wp_get_attachment_image_src($mid, 'dwt_listing_user-dp'); $galleryz[] = array( "url" => esc_url($full_img[0]), "image_id" => esc_attr($mid), "listing_id" =>$listing_id, ); } } } } //form fields $list_creatz['title'] = array("main_title" => dwt_listing_text('dwt_listing_list_title'), "placeholder" =>dwt_listing_text('dwt_listing_list_place'),"is_required" => true,"value" => ''); $list_creatz['category'] = array("main_title" => dwt_listing_text('dwt_listing_list_category'), "placeholder" =>__("Select Business Category", "dwt-listing-api"),"is_required" => true,"value" => '',"dropdown" => $list_categories); $list_creatz['phone'] = array("main_title" => dwt_listing_text('dwt_listing_list_contact'), "placeholder" =>dwt_listing_text('dwt_listing_list_contact_place'),"is_required" => false,"value" => ''); $list_creatz['weburl'] = array("main_title" => dwt_listing_text('dwt_listing_list_web'), "placeholder" =>dwt_listing_text('dwt_listing_list_web_place') ,"is_required" => true,"value" => ''); $list_creatz['price_type'] = array("main_title" => dwt_listing_text('dwt_listing_list_pricetype'), "placeholder" =>__("Select Price Type", "dwt-listing-api") ,"is_required" => false,"value" => '' ,"dropdown" => $list_types); $list_creatz['currency_type'] = array("main_title" => dwt_listing_text('dwt_listing_list_currenct'), "placeholder" =>__("Select Currency Type", "dwt-listing-api") ,"is_required" => false,"value" => '' ,"dropdown" => $currencies); $list_creatz['price_from'] = array("main_title" => dwt_listing_text('dwt_listing_list_price_from'), "placeholder" =>"","is_required" => false,"value" => ''); $list_creatz['price_to'] = array("main_title" => dwt_listing_text('dwt_listing_list_price_to'), "placeholder" =>"","is_required" => false,"value" => ''); $list_creatz['business_hours'] = array("main_title" => dwt_listing_text('dwt_listing_b_h_section'), "placeholder" =>"","is_required" => false,"value" => '' ,"dropdown" => $hours); $list_creatz['timezone'] = array("main_title" => dwt_listing_text('dwt_listing_b_h_time'), "placeholder" =>dwt_listing_text('dwt_listing_b_h_time'),"is_required" => true,"value" => ''); $list_creatz['days'] = array("from" => __("From", "dwt-listing-api"), "to" =>__("To", "dwt-listing-api"), "close" =>__("Closed", "dwt-listing-api"),"is_required" => true,"value" => '',"dropdown" => $days); $list_creatz['fb'] = array("main_title" => '', "placeholder" =>__("Facebook URL", "dwt-listing-api"),"is_required" => false,"value" => ""); $list_creatz['tw'] = array("main_title" => '', "placeholder" =>__("Twitter URL", "dwt-listing-api"),"is_required" => false,"value" =>""); $list_creatz['in'] = array("main_title" => '', "placeholder" =>__("LinkedIn URL", "dwt-listing-api"),"is_required" => false,"value" => ""); $list_creatz['youtube'] = array("main_title" => '', "placeholder" =>__("Youtube URL", "dwt-listing-api"),"is_required" => false,"value" => ""); $list_creatz['insta'] = array("main_title" => '', "placeholder" =>__("Instagram URL", "dwt-listing-api"),"is_required" => false,"value" => ""); $list_creatz['desc'] = array("main_title" => dwt_listing_text('dwt_listing_list_desc'), "placeholder" =>"","is_required" => true,"value" => ''); $list_creatz['video_link'] = array("main_title" => dwt_listing_text('dwt_listing_list_video'), "placeholder" => dwt_listing_text('dwt_listing_list_video_place'),"is_required" => false,"value" => ''); $list_creatz['email'] = array("main_title" => dwt_listing_text('dwt_listing_contact_email'), "placeholder" => dwt_listing_text('dwt_listing_contact_email_placeholder'),"is_required" => false,"value" => ''); $list_creatz['tags'] = array("main_title" => dwt_listing_text('dwt_listing_list_tags'), "placeholder" => dwt_listing_text('dwt_listing_list_tags_place'),"is_required" => false,"value" => ''); $list_creatz['gallery'] = array("main_title" => dwt_listing_text('dwt_listing_list_gallery') , "placeholder" =>__("Select Pics", "dwt-listing-api"),"is_required" => true,"has_gallery" => $has_gallery,"dropdown" => $galleryz); $list_creatz['brandname'] = array("main_title" => dwt_listing_text('dwt_listing_b_title') , "placeholder" => dwt_listing_text('dwt_listing_b_placetitle'),"value" => ""); $list_creatz['brand_logo'] = array("main_title" => dwt_listing_text('dwt_listing_brand_name_logo') , "brand_img_id" => "","value" => $get_brand_img); $list_creatz['coupon'] = array("main_title" => dwt_listing_text('dwt_listing_coupon_title'), "placeholder" =>__("Save 20%", "dwt-listing-api"), "is_required" => false,"value" => ''); $list_creatz['coupon_code'] = array("main_title" => dwt_listing_text('dwt_listing_coupon_code'), "placeholder" =>__("#12356-12", "dwt-listing-api"), "is_required" => false,"value" => ''); $list_creatz['coupon_link'] = array("main_title" => dwt_listing_text('dwt_listing_coupon_referral'), "placeholder" => "", "is_required" => false,"value" => ''); $list_creatz['coupon_expiry'] = array("main_title" => dwt_listing_text('dwt_listing_coupon_expiry_date'), "placeholder" => "", "is_required" => false,"value" => ''); $list_creatz['coupon_desc'] = array("main_title" => dwt_listing_text('dwt_listing_coupon_desc'), "placeholder" => "", "is_required" => false,"value" => ''); $list_creatz['street_address'] = array("main_title" => dwt_listing_text('dwt_listing_list_google_loc'), "placeholder" => dwt_listing_text('dwt_listing_list_google_loc_place'),"is_required" => true,"value" => ''); $list_creatz['latt'] = array("main_title" => dwt_listing_text('dwt_listing_list_lati'), "placeholder" => dwt_listing_text('dwt_listing_list_lati_place'),"is_required" => true,"value" => ''); $list_creatz['long'] = array("main_title" => dwt_listing_text('dwt_listing_list_longi'), "placeholder" => dwt_listing_text('dwt_listing_list_longi_place'),"is_required" => true,"value" => ''); $list_creatz['custom_loc'] = array("main_title" => esc_attr($loc_lvl_1), "placeholder" => esc_attr($loc_lvl_1) ,"is_required" => true,"value" => "", "dropdown" => $get_locations); $featured_listing = ''; $can_featured = false; if(get_user_meta($user_id, 'dwt_listing_featured_listing', true) != "") { $featured_listing = get_user_meta($user_id, 'dwt_listing_featured_listing', true); //if($featured_listing == '-1' || $featured_listing > 0 && $listing_is_feature !='1') if($featured_listing == '-1' || $featured_listing > 0) { $can_featured = true; } } $loc_allow = false; if(dwt_listing_text('dwt_listing_allow_country_location') == 1) { $loc_allow = true; } $can_bump = false; $submission['steps'] = esc_html__("Next Step ", "dwt-listing-api"); $submission['btn_text'] = $dwt_listing_options["dwt_listing_list_form_btn"]; $submission['can_featured'] = $can_featured; $submission['featured_already'] = false; $submission['featured_text'] = esc_html__("Do you want to make this listing featured!", "dwt-listing-api"); $submission['can_bump'] = $can_bump; $submission['bump_text'] = esc_html__("Do you want to bump this listing!", "dwt-listing-api"); $submission['already_featured'] = esc_html__("This listing is already featured.", "dwt-listing-api"); $submission['update_listing_msg'] = esc_html__("Listing updated successfully", "dwt-listing-api"); $submission['delete_msg'] = esc_html__("Are you sure you want to do this?", "dwt-listing-api"); $submission['required_msg'] = esc_html__("You are required to fill out all fields.", "dwt-listing-api"); $submission['custom_location'] = $loc_allow; $submission['is_videolink'] = $is_videolink; $submission['is_weblink'] = $is_weblink; $submission['is_price_range'] = $is_price_range; $submission['is_business_hours'] = $is_business_hours; $submission['is_tags'] = $is_allow_tags; $submission['is_coupon_code'] = $is_coupon_code; $submission['create_listing'] = $list_creatz; $response = rest_ensure_response(array('success' => true, 'data' => $submission, "message" => "")); return $response; } } // Edit Listing Form add_action( 'rest_api_init', 'dwt_listing_submit_listing_get_edit', 0 ); function dwt_listing_submit_listing_get_edit() { register_rest_route( 'downtown/app', '/update-listing/', array( 'methods' => WP_REST_Server::EDITABLE, 'callback' => 'dwt_listing_edit_submission', 'permission_callback' => function () { return dwt_listing_basic_auth(); }, ) ); } if (!function_exists('dwt_listing_edit_submission')) { function dwt_listing_edit_submission($request) { //global $dwt_listing_api; $listing_contact_email = $listing_brandname = $listing_insta = $listing_youtube = $listing_coupon = $listing_coupon_code = $listing_coupon_referral = $listing_coupon_desc = $listing_coupon_from = $listing_coupon_exp = $video_listing = ''; $web_link =''; $no_of_images =''; $price_range=""; $business_hours = ''; $allow_tags = ''; $latitude = ''; $longitude = ''; $cats = ''; $countries = ''; $price_type = ''; $listing_id = '';$listing_desc = ''; $listing_title = '';$listing_tagline = '';$listing_contact =''; $listing_web_url =''; $listing_price_from =''; $listing_price_to = ''; $listing_video =''; $listing_tags = '';$tags_array ='';$listing_street ='';$listing_lattitude ='';$listing_longitide ='';$listing_price_type = '';$get_object_terms ='';$category_level ='';$cats_features ='';$get_object_terms_country ='';$country_level ='';$state_html ='';$states ='';$selected ='';$cities ='';$towns='';$cities_html ='';$towns_html ='';$is_update='';$listing_fb ='';$listing_tw ='';$listing_google ='';$listing_in ='';$listing_categories='';$number_of_images='';$expiry_date =''; $listing_is_bump = 0;$featured_listing = '';$listing_bump_amount = ''; $listing_currency = ''; $listing_currency_type =''; $time_from = $listing_timezone = $time_to = ''; $category_id = ''; $dynamic_custom_fields = ''; $cover_brand_idz = $selected_cat = $selected_loc = $coupon_code ='';$number_of_images = 5; global $dwt_listing_options; $user = wp_get_current_user(); $user_id = $user->ID; $list_creatz = $submission = array(); $is_coupon_code = $is_allow_tags = $is_business_hours = $is_price_range = $is_videolink = $is_weblink = false; //package ID $package_id = ''; if( get_user_meta($user_id, 'd_user_package_id', true ) != "" ) { $package_id = get_user_meta($user_id, 'd_user_package_id', true ); } if(!empty($package_id)) { if(get_post_meta($package_id, 'video_listing', true ) !="") { $video_listing = get_post_meta($package_id, 'video_listing', true ); if($video_listing == "yes") { $is_videolink = true; } } if(get_post_meta($package_id, 'website_link', true ) !="") { $web_link = get_post_meta($package_id, 'website_link', true ); if($web_link == "yes") { $is_weblink = true; } } if(get_post_meta($package_id, 'price_range', true ) !="") { $price_range = get_post_meta($package_id, 'price_range', true ); if($price_range == "yes") { $is_price_range = true; } } if(get_post_meta($package_id, 'business_hours', true ) !="") { $business_hours = get_post_meta($package_id, 'business_hours', true ); if($business_hours == "yes") { $is_business_hours = true; } } if(get_post_meta($package_id, 'allow_tags', true ) !="") { $allow_tags = get_post_meta($package_id, 'allow_tags', true ); if($allow_tags == "yes") { $is_allow_tags = true; } } if(get_post_meta($package_id, 'allow_coupon_code', true ) !="") { $coupon_code = get_post_meta($package_id, 'allow_coupon_code', true ); if($coupon_code == "yes") { $is_coupon_code = true; } } if(get_post_meta($package_id, 'no_of_images', true ) !="") { $number_of_images = get_post_meta($package_id, 'no_of_images', true ); } } $json_data = $request->get_json_params(); $is_update = isset($json_data['is_update']) ? sanitize_text_field($json_data['is_update']) : ''; $selected_val = 0; if(get_user_meta($user_id, 'd_user_timezone' , true ) !="") { $listing_timezone = get_user_meta($current_user_id, 'd_user_timezone', true); } $can_bump = false; if($is_update !="") { $listing_id = $is_update; $post = get_post($listing_id); $listing_title = dwt_listing_convert_uniText($post->post_title); $listing_content = dwt_listing_convert_uniText($post->post_content); $listing_contact = get_post_meta($listing_id, 'dwt_listing_listing_contact', true); $listing_web_url = get_post_meta($listing_id, 'dwt_listing_listing_weburl', true); $listing_price_type = get_post_meta($listing_id, 'dwt_listing_listing_priceType', true); $listing_currency_type = get_post_meta($listing_id, 'dwt_listing_listing_currencyType', true); $listing_price_from = get_post_meta($listing_id, 'dwt_listing_listing_pricefrom', true); $listing_price_to = get_post_meta($listing_id, 'dwt_listing_listing_priceto', true); //business hours if(get_post_meta($listing_id, 'dwt_listing_is_hours_allow', true) == 1) { if(get_post_meta($listing_id, 'dwt_listing_business_hours', true) == '1') { $selected_val = 1; } else { $selected_val = 2; } } $listing_timezone = get_post_meta($listing_id, 'dwt_listing_user_timezone', true); $listing_fb = get_post_meta($listing_id, 'dwt_listing_listing_fb', true); $listing_tw = get_post_meta($listing_id, 'dwt_listing_listing_tw', true); $listing_google = get_post_meta($listing_id, 'dwt_listing_listing_google', true); $listing_in = get_post_meta($listing_id, 'dwt_listing_listing_in', true); $listing_youtube = get_post_meta($listing_id, 'dwt_listing_youtube', true); $listing_insta = get_post_meta($listing_id, 'dwt_listing_insta', true); $listing_video = get_post_meta($listing_id, 'dwt_listing_listing_video', true); $listing_contact_email = get_post_meta($listing_id, 'dwt_listing_related_email', true); $tags_array = wp_get_object_terms( $listing_id, 'l_tags', array('fields' => 'names')); $listing_tags = implode(',', $tags_array); $has_gallery = false; $media = dwt_listing_fetch_listing_gallery($listing_id); if( count((array) $media ) > 0 ) { $has_gallery = true; foreach( $media as $m ) { $mid = ''; if ( isset( $m->ID ) ) { $mid = $m->ID; } else { $mid = $m; } $full_img = $thumb_imgs = ''; $full_img = wp_get_attachment_image_src($mid, 'dwt_listing_user-dp'); $gallery[] = array( "url" => esc_url($full_img[0]), "image_id" => esc_attr($mid), "listing_id" =>$listing_id, ); } } $selected_cat_name = ''; //coupon code $listing_coupon = get_post_meta($listing_id, 'dwt_listing_coupon_title', true); $listing_coupon_code = get_post_meta($listing_id, 'dwt_listing_coupon_code', true); $listing_coupon_referral = get_post_meta($listing_id, 'dwt_listing_coupon_refer', true); $listing_coupon_exp = get_post_meta($listing_id, 'dwt_listing_coupon_expiry', true); $listing_coupon_desc = get_post_meta($listing_id, 'dwt_listing_coupon_desc', true); $listing_street = get_post_meta($listing_id, 'dwt_listing_listing_street', true); $listing_lattitude = get_post_meta($listing_id, 'dwt_listing_listing_lat', true); $listing_longitide = get_post_meta($listing_id, 'dwt_listing_listing_long', true); $listing_brandname = get_post_meta($listing_id, 'dwt_listing_brand_name', true); $get_brand_img = dwt_listing_get_brand_img($listing_id,'dwt_listing_list-view1'); if(get_post_meta($listing_id, 'dwt_listing_brand_img', true) != "") { $cover_brand_idz = get_post_meta($listing_id, 'dwt_listing_brand_img', true); } $selected_loc_name = $get_object_terms_country = $get_object_terms = ''; $get_object_terms = dwt_listing_selected_catz($listing_id); if(!empty($get_object_terms) && is_array($get_object_terms)) { $selected_cat = $get_object_terms[0]['id']; $selected_cat_name = $get_object_terms[0]['name']; } //Get countries levels $get_object_terms_country = dwt_listing_selected_locationz($listing_id); if(!empty($get_object_terms_country) && is_array($get_object_terms_country)) { $selected_loc = $get_object_terms_country[0]['id']; $selected_loc_name = $get_object_terms_country[0]['name']; } } //Categories $listing_cats = dwt_listing_categories_fetch('l_category' , 0 ); $list_categories = array(); if(!empty($listing_cats) && is_array($listing_cats) && count($listing_cats) > 0) { foreach($listing_cats as $cat) { $list_categories[] = array("category_id" =>$cat->term_id,"category_name" =>dwt_listing_convert_uniText($cat->name)); } } //Price Types $price_type = dwt_listing_categories_fetch('l_price_type' , 0 ); $list_types = array(); if(!empty($price_type) && is_array($price_type) && count($price_type) > 0) { foreach($price_type as $price_types) { $list_types[] = array("id" =>$price_types->term_id,"name" =>dwt_listing_convert_uniText($price_types->name)); } } //Currency $listing_currency = dwt_listing_categories_fetch('l_currency' , 0 ); $currencies = array(); if(!empty($listing_currency) && is_array($listing_currency) && count($listing_currency) > 0) { foreach($listing_currency as $currency) { $currencies[] = array("id" =>$currency->term_id,"name" =>dwt_listing_convert_uniText($currency->name)); } } //Business Hours $hours[] = array("text" =>esc_html__("N/A", "dwt-listing-api"),"value" => 0); $hours[] = array("text" =>esc_html__("Open 24/7", "dwt-listing-api") ,"value" => 1); $hours[] = array("text" =>esc_html__("Selective Hours", "dwt-listing-api") ,"value" => 2); // Days if(!empty(dwt_listing_fetch_business_hours($listing_id))) { $days = dwt_listing_fetch_business_hours($listing_id); } else { $dayss = dwt_listing_week_days(); foreach( $dayss as $key => $val ) { $days[] = array("day_name" => $val, "start_time" => '', "end_time" => '', "closed" => ''); } } //Get countries $countries = dwt_listing_categories_fetch('l_location' , 0 ); $get_locations = array(); foreach( $countries as $country ) { $get_locations[] = array("location_id" =>$country->term_id,"name" =>dwt_listing_convert_uniText($country->name)); } //Selected $loc_lvl_1 = esc_html__('Select Your Country', 'dwt-listing-api' ); if( dwt_listing_text('sb_location_titles') != "" ) { $titles_array = explode("|", dwt_listing_text('sb_location_titles') ); if( count( $titles_array ) > 0 ) { if( isset( $titles_array[0] ) ) $loc_lvl_1 = $titles_array[0]; } } $type_value = $term_name = ''; if(isset($listing_price_type) && $listing_price_type !="") { $term_name = get_term_by('name', $listing_price_type, 'l_price_type'); $type_value = $term_name->term_id; } $curr_value = $term_name_curr = ''; if(isset($listing_currency_type) && $listing_currency_type !="") { $term_name_curr = get_term_by('name', $listing_currency_type, 'l_currency'); $curr_value = $term_name_curr->term_id; } //form fields $list_creatz['title'] = array("main_title" => dwt_listing_text('dwt_listing_list_title'), "placeholder" =>dwt_listing_text('dwt_listing_list_place'),"is_required" => true,"value" => esc_attr($listing_title)); $list_creatz['category'] = array("main_title" => dwt_listing_text('dwt_listing_list_category'), "placeholder" =>__("Select Business Category", "dwt-listing-api"),"is_required" => true,"value" => esc_attr($selected_cat),"name" => esc_attr($selected_cat_name),"dropdown" => $list_categories); $list_creatz['phone'] = array("main_title" => dwt_listing_text('dwt_listing_list_contact'), "placeholder" =>dwt_listing_text('dwt_listing_list_contact_place'),"is_required" => false,"value" => esc_attr($listing_contact)); $list_creatz['weburl'] = array("main_title" => dwt_listing_text('dwt_listing_list_web'), "placeholder" =>dwt_listing_text('dwt_listing_list_web_place') ,"is_required" => true,"value" => esc_url($listing_web_url)); $list_creatz['price_type'] = array("main_title" => dwt_listing_text('dwt_listing_list_pricetype'), "placeholder" =>__("Select Price Type", "dwt-listing-api") ,"is_required" => false,"value" => esc_attr($type_value), "name" => esc_attr($listing_price_type), "dropdown" => $list_types); $list_creatz['currency_type'] = array("main_title" => dwt_listing_text('dwt_listing_list_currenct'), "placeholder" =>__("Select Currency Type", "dwt-listing-api") ,"is_required" => false,"value" => esc_attr($curr_value),"name" => esc_attr($listing_currency_type),"dropdown" => $currencies); $list_creatz['price_from'] = array("main_title" => dwt_listing_text('dwt_listing_list_price_from'), "placeholder" =>"","is_required" => false,"value" => esc_attr($listing_price_from)); $list_creatz['price_to'] = array("main_title" => dwt_listing_text('dwt_listing_list_price_to'), "placeholder" =>"","is_required" => false,"value" => esc_attr($listing_price_to)); $list_creatz['business_hours'] = array("main_title" => dwt_listing_text('dwt_listing_b_h_section'), "placeholder" =>"","is_required" => false,"value" => esc_attr($selected_val) ,"dropdown" => $hours); $list_creatz['timezone'] = array("main_title" => dwt_listing_text('dwt_listing_b_h_time'), "placeholder" =>dwt_listing_text('dwt_listing_b_h_time'),"is_required" => true,"value" => esc_attr($listing_timezone)); $list_creatz['days'] = array("from" => __("From", "dwt-listing-api"), "to" =>__("To", "dwt-listing-api"), "close" =>__("Closed", "dwt-listing-api"),"is_required" => true,"value" => '',"dropdown" => $days); $list_creatz['fb'] = array("main_title" => '', "placeholder" =>__("Facebook URL", "dwt-listing-api"),"is_required" => false,"value" => esc_url($listing_fb)); $list_creatz['tw'] = array("main_title" => '', "placeholder" =>__("Twitter URL", "dwt-listing-api"),"is_required" => false,"value" => esc_url($listing_tw)); $list_creatz['in'] = array("main_title" => '', "placeholder" =>__("LinkedIn URL", "dwt-listing-api"),"is_required" => false,"value" => esc_url($listing_in)); $list_creatz['youtube'] = array("main_title" => '', "placeholder" =>__("Youtube URL", "dwt-listing-api"),"is_required" => false,"value" => esc_url($listing_youtube)); $list_creatz['insta'] = array("main_title" => '', "placeholder" =>__("Instagram URL", "dwt-listing-api"),"is_required" => false,"value" => esc_url($listing_insta)); $list_creatz['desc'] = array("main_title" => dwt_listing_text('dwt_listing_list_desc'), "placeholder" =>"","is_required" => true,"value" => esc_textarea($listing_content)); $list_creatz['video_link'] = array("main_title" => dwt_listing_text('dwt_listing_list_video'), "placeholder" => dwt_listing_text('dwt_listing_list_video_place'),"is_required" => false,"value" => esc_url($listing_video)); $list_creatz['email'] = array("main_title" => dwt_listing_text('dwt_listing_contact_email'), "placeholder" => dwt_listing_text('dwt_listing_contact_email_placeholder'),"is_required" => false,"value" => sanitize_email($listing_contact_email)); $list_creatz['tags'] = array("main_title" => dwt_listing_text('dwt_listing_list_tags'), "placeholder" => dwt_listing_text('dwt_listing_list_tags_place'),"is_required" => false,"value" => $listing_tags); $list_creatz['gallery'] = array("main_title" => dwt_listing_text('dwt_listing_list_gallery') , "placeholder" =>__("Select Pics", "dwt-listing-api"),"is_required" => true,"has_gallery" => $has_gallery,"dropdown" => $gallery); $list_creatz['brandname'] = array("main_title" => dwt_listing_text('dwt_listing_b_title') , "placeholder" => dwt_listing_text('dwt_listing_b_placetitle'),"value" => dwt_listing_convert_uniText($listing_brandname)); $list_creatz['brand_logo'] = array("main_title" => dwt_listing_text('dwt_listing_brand_name_logo') , "brand_img_id" => $cover_brand_idz,"value" => $get_brand_img); $list_creatz['coupon'] = array("main_title" => dwt_listing_text('dwt_listing_coupon_title'), "placeholder" =>__("Save 20%", "dwt-listing-api"), "is_required" => false,"value" => dwt_listing_convert_uniText( $listing_coupon)); $list_creatz['coupon_code'] = array("main_title" => dwt_listing_text('dwt_listing_coupon_code'), "placeholder" =>__("#12356-12", "dwt-listing-api"), "is_required" => false,"value" => $listing_coupon_code); $list_creatz['coupon_link'] = array("main_title" => dwt_listing_text('dwt_listing_coupon_referral'), "placeholder" => "", "is_required" => false,"value" => esc_url($listing_coupon_referral)); $list_creatz['coupon_expiry'] = array("main_title" => dwt_listing_text('dwt_listing_coupon_expiry_date'), "placeholder" => "", "is_required" => false,"value" => $listing_coupon_exp); $list_creatz['coupon_desc'] = array("main_title" => dwt_listing_text('dwt_listing_coupon_desc'), "placeholder" => "", "is_required" => false,"value" => dwt_listing_convert_uniText($listing_coupon_desc)); $list_creatz['street_address'] = array("main_title" => dwt_listing_text('dwt_listing_list_google_loc'), "placeholder" => dwt_listing_text('dwt_listing_list_google_loc_place'),"is_required" => true,"value" => dwt_listing_convert_uniText($listing_street)); $list_creatz['latt'] = array("main_title" => dwt_listing_text('dwt_listing_list_lati'), "placeholder" => dwt_listing_text('dwt_listing_list_lati_place'),"is_required" => true,"value" => esc_attr($listing_lattitude)); $list_creatz['long'] = array("main_title" => dwt_listing_text('dwt_listing_list_longi'), "placeholder" => dwt_listing_text('dwt_listing_list_longi_place'),"is_required" => true,"value" => esc_attr($listing_longitide)); $list_creatz['custom_loc'] = array("main_title" => esc_attr($loc_lvl_1), "placeholder" => esc_attr($loc_lvl_1) ,"is_required" => true,"value" => esc_attr($selected_loc),"name" => esc_attr($selected_loc_name), "dropdown" => $get_locations); $featured_listing = ''; $can_featured = false; if(get_user_meta($user_id, 'dwt_listing_featured_listing', true) != "") { $featured_listing = get_user_meta($user_id, 'dwt_listing_featured_listing', true); if($featured_listing == '-1' || $featured_listing > 0 && $listing_is_feature !='1') { $can_featured = true; } } $already_featured = false; if( get_post_meta( $listing_id, 'dwt_listing_is_feature', true ) == 1) { $already_featured = true; } //bump up $listing_bump_amount = ''; $listing_bump_amount = get_user_meta($user_id, 'dwt_listing_bump_listing', true); if($listing_bump_amount == '-1' || $listing_bump_amount > 0) { $can_bump = true; } $loc_allow = false; if(dwt_listing_text('dwt_listing_allow_country_location') == 1) { $loc_allow = true; } $submission['steps'] = esc_html__("Next Step ", "dwt-listing-api"); $submission['btn_text'] = $dwt_listing_options["dwt_listing_list_form_btn"]; $submission['can_featured'] = $can_featured; $submission['featured_already'] = $already_featured; $submission['featured_text'] = esc_html__("Do you want to make this listing featured!", "dwt-listing-api"); $submission['can_bump'] = $can_bump; $submission['bump_text'] = esc_html__("Do you want to bump this listing!", "dwt-listing-api"); $submission['already_featured'] = esc_html__("This listing is already featured.", "dwt-listing-api"); $submission['update_listing_msg'] = esc_html__("Listing updated successfully", "dwt-listing-api"); $submission['delete_msg'] = esc_html__("Are you sure you want to do this?", "dwt-listing-api"); $submission['required_msg'] = esc_html__("You are required to fill out all fields.", "dwt-listing-api"); $submission['custom_location'] = $loc_allow; $submission['is_videolink'] = $is_videolink; $submission['is_weblink'] = $is_weblink; $submission['is_price_range'] = $is_price_range; $submission['is_business_hours'] = $is_business_hours; $submission['is_tags'] = $is_allow_tags; $submission['is_coupon_code'] = $is_coupon_code; $submission['create_listing'] = $list_creatz; $response = rest_ensure_response(array( 'success' => true, 'data' => $submission, "message" => "")); return $response; } } // Select Category & Custom Fields add_action( 'rest_api_init', 'dwt_listing_amenties', 0 ); function dwt_listing_amenties() { register_rest_route( 'downtown/app', '/get-amenities/', array( 'methods' => WP_REST_Server::EDITABLE, 'callback' => 'dwt_listing_get_amenities', 'permission_callback' => function () { return dwt_listing_basic_auth(); }, ) ); } if (!function_exists('dwt_listing_get_amenities')) { function dwt_listing_get_amenities($request) { $user = wp_get_current_user(); $user_id = $user->ID; $listing_categories = $dynamic_data = array(); $json_data = $request->get_json_params(); $dynamic_data['section_txt'] = dwt_listing_text('dwt_listing_list_amen'); if(!empty($json_data['category_id'])) { $category_id = $json_data['category_id']; $listing_id = $json_data['listing_id']; $features = dwt_listing_categories_fetch('l_category',$category_id); $dy_fields = $dy_features = array(); $dynamic_data['has_amenities'] = false; if(is_array($features) && !empty($features) && count($features) > 0 ) { if(!empty($listing_id)) { $listing_categories = wp_get_object_terms( $listing_id, 'l_category', array("fields" => "ids") ); } foreach( $features as $feature ) { $selected = (in_array($feature->term_id,$listing_categories)) ? true : false; $dy_features[] = array("id" =>$feature->term_id,"name" =>dwt_listing_convert_uniText($feature->name),"status" => $selected); //break; } $dynamic_data['has_amenities'] = true; } $dynamic_data['amenities'] = $dy_features; // check custom fields $fetch_form_fields = get_posts(array('post_type' => 'l_form_fields', 'post_status'=> 'publish', 'order'=> 'ASC', 'posts_per_page' => -1, 'tax_query' => array( array( 'taxonomy' => 'l_category', 'field' => 'term_id', 'terms' => $category_id) )) ); $dynamic_data['has_custom_fields'] = false; if(is_array($fetch_form_fields) && !empty($fetch_form_fields) && count($fetch_form_fields) > 0 ) { $dynamic_data['has_custom_fields'] = true; foreach ($fetch_form_fields as $form_fields) { $post_id = $form_fields->ID; $field_type = get_post_meta( $post_id, 'd_field_type', true ); // dynamic text fields if($field_type == 'text') { $options = dwt_listing_render_custom_fields($post_id,'d_multi_textfields'); if(count($options) > 0) { $fvals = array(); foreach($options as $opt) { $fvals = 'field_multi_text_'.$post_id; } $dy_fields[] = array("field_type_name" => "textfield", "title" => dwt_listing_convert_uniText($form_fields->post_title), "field_name" => $fvals); //break; } } // dynamic multi checkboxes if($field_type == 'multiplecheck') { $options = dwt_listing_render_custom_fields($post_id,'d_multi_check'); if(count($options) > 0) { $fvals = array(); foreach($options as $opt) { $fvals[] = array("field_name" =>'field_multi_check_'.$post_id.'[]', "field_heading" => dwt_listing_convert_uniText($opt)); //break; } $dy_fields[] = array("field_type_name" => "checkbox", "title" => dwt_listing_convert_uniText($form_fields->post_title),"dynamic_fields" => $fvals); } } // dynamic radio buttons if($field_type == 'radio') { $options = dwt_listing_render_custom_fields($post_id,'d_multi_radio'); if(count($options) > 0) { $fvals = array(); foreach($options as $opt) { $fvals[] = array("field_name" =>'field_multi_radio_'.$post_id.'', "field_heading" => dwt_listing_convert_uniText($opt)); //break; } $dy_fields[] = array("field_type_name" => "radio", "title" => dwt_listing_convert_uniText($form_fields->post_title),"dynamic_fields" => $fvals); } } // dynamic radio buttons if($field_type == 'dropdownselect') { $options = dwt_listing_render_custom_fields($post_id,'d_multi_drop_val'); if(count($options) > 0) { $fvals = array(); foreach($options as $opt) { $fvals[] = array("text" =>dwt_listing_convert_uniText($opt), "dropdown_values" => dwt_listing_convert_uniText($opt)); //break; } $dy_fields[] = array("field_type_name" => "select", "title" => dwt_listing_convert_uniText($form_fields->post_title),"field_name" => 'field_multi_select_'.$post_id.'' ,"dynamic_fields" => $fvals); } } } } $dynamic_data['dynamic_fields'] = $dy_fields; return rest_ensure_response(array( 'success' => true, 'data' => $dynamic_data , 'message' => "" )); } else { return rest_ensure_response(array( 'success' => false, 'data' => '' , 'message' => __("Whoops, ID is required.", "dwt-listing-api") )); } } } // Fetch Custom Locations add_action( 'rest_api_init', 'dwt_listing_location_on_submit', 0 ); function dwt_listing_location_on_submit() { register_rest_route( 'downtown/app', '/get-locations/', array( 'methods' => WP_REST_Server::EDITABLE, 'callback' => 'dwt_listing_custom_locations_on_submit', 'permission_callback' => function () { return dwt_listing_basic_auth(); }, ) ); } if (!function_exists('dwt_listing_custom_locations_on_submit')) { function dwt_listing_custom_locations_on_submit($request) { $user = wp_get_current_user(); $user_id = $user->ID; $dynamic_data = array(); $json_data = $request->get_json_params(); $listing_id = ''; if(!empty($json_data['location_id'])) { $listing_id = $json_data['listing_id']; $loc_lvl_2 = esc_html__('Select Your State', 'dwt-listing-api' ) ; $loc_lvl_3 = esc_html__('Select Your City', 'dwt-listing-api' ) ; $loc_lvl_4 = esc_html__('Select Your Town', 'dwt-listing-api' ) ; if( dwt_listing_text('sb_location_titles') != "" ) { $titles_array = explode("|", dwt_listing_text('sb_location_titles') ); if( count( $titles_array ) > 0 ) { if( isset( $titles_array[1] ) ) $loc_lvl_2 = $titles_array[1]; if( isset( $titles_array[2] ) ) $loc_lvl_3 = $titles_array[2]; if( isset( $titles_array[3] ) ) $loc_lvl_4 = $titles_array[3]; } } $level = ''; if($json_data['level'] == 2) { $level = $loc_lvl_2; } if($json_data['level'] == 3) { $level = $loc_lvl_3; } if($json_data['level'] == 4) { $level = $loc_lvl_4; } $dynamic_data['has_sub_location'] = false; $location_id = $json_data['location_id']; $cities = dwt_listing_categories_fetch('l_location' , $location_id); $loc_array = array(); $idz = $namez = ''; if(!empty($listing_id)) { if($json_data['level'] == 2) { $get_object_terms_country = ''; $get_object_terms_country = dwt_listing_selected_locationz($listing_id); $idz = $get_object_terms_country[1]['id']; $namez = $get_object_terms_country[1]['name']; } if($json_data['level'] == 3) { $get_object_terms_country = ''; $get_object_terms_country = dwt_listing_selected_locationz($listing_id); $idz = $get_object_terms_country[2]['id']; $namez = $get_object_terms_country[2]['name']; } if($json_data['level'] == 4) { $get_object_terms_country = ''; $get_object_terms_country = dwt_listing_selected_locationz($listing_id); $idz = $get_object_terms_country[3]['id']; $namez = $get_object_terms_country[3]['name']; } } if(!empty($cities) && is_array($cities) && count($cities) > 0) { $dynamic_data['has_sub_location'] = true; foreach($cities as $city) { $loc_array[] = array("location_id" =>$city->term_id,"name" =>dwt_listing_convert_uniText($city->name)); } } $place = esc_html__( 'Select Your ', 'dwt-listing-api').dwt_listing_convert_uniText($level); $dynamic_data['locations'] = array("main_title" => dwt_listing_convert_uniText($level), "placeholder" =>$place ,"value" => esc_attr($idz),"name" => esc_attr($namez),"dropdown" => $loc_array); return rest_ensure_response(array( 'success' => true, 'data' => $dynamic_data , 'message' => "" )); } else { return rest_ensure_response(array( 'success' => false, 'data' => '' , 'message' => __("Whoops, ID is required.", "dwt-listing-api") )); } } } // Submit Listing add_action( 'rest_api_init', 'dwt_listing_post_listing', 0 ); function dwt_listing_post_listing() { register_rest_route( 'downtown/app', '/post-listing/', array( 'methods' => WP_REST_Server::EDITABLE, 'callback' => 'dwt_listing_post_listing_app', 'permission_callback' => function () { return dwt_listing_basic_auth(); }, ) ); } if (!function_exists('dwt_listing_post_listing_app')) { function dwt_listing_post_listing_app($request) { global $dwt_listing_api; global $dwt_listing_options; $user = wp_get_current_user(); $user_id = $user->ID; $dynamic_data = array(); $listing_amenties = $listing_brandname = $is_closed_app = $end_from_app = $start_from_app = $featured_ad = $country = $state = $city = $town = $listing_longitide = $listing_lattitude = $listing_street = $listing_coupon_desc = $listing_coupon_exp = $listing_coupon_referral = $listing_coupon_code = $listing_coupon = $listing_tags = $listing_contact_email = $listing_video = $listing_insta = $listing_youtube = $listing_in = $listing_tw = $listing_fb = $end_from = $start_from = $is_closed = $listing_timezone = $listing_is_open = $listing_price_to = $listing_price_from = $listing_currency_type = $listing_price_type = $listing_web_url = $listing_contact = $listing_category = $ad_desc = $listing_title = ''; $params = $request->get_json_params(); $listing_title = sanitize_text_field($params['title']); $ad_desc = ( $params['desc'] ); $listing_category = sanitize_text_field($params['category_id']); $listing_amenties = sanitize_text_field($params['cat_features']); $listing_contact = sanitize_text_field($params['contact_no']); $listing_web_url = sanitize_text_field($params['weburl']); $listing_price_type = sanitize_text_field($params['price_type']); $listing_currency_type = sanitize_text_field($params['currency_type']); $listing_price_from = sanitize_text_field($params['pricefrom']); $listing_price_to = sanitize_text_field($params['priceto']); $listing_is_open = sanitize_text_field($params['hours_type']); $listing_timezone = sanitize_text_field($params['timezone']); $is_closed = sanitize_text_field($params['is_closed']); $start_from = sanitize_text_field($params['to']); $end_from = sanitize_text_field($params['from']); //just for app $start_from_app = explode(",", $start_from); $end_from_app = explode(",", $end_from); if(!empty($is_closed)) { $is_closed_app = explode(",", $is_closed); } $listing_fb = esc_url_raw($params['fb']); $listing_tw = esc_url_raw($params['tw']); $listing_in = esc_url_raw($params['linkedin']); $listing_youtube = esc_url_raw($params['youtube']); $listing_insta = esc_url_raw($params['insta']); $listing_video = ($params['videolink']); $listing_contact_email = sanitize_text_field($params['email']); $listing_tags = sanitize_text_field($params['tags']); $listing_coupon = sanitize_text_field($params['coupon_title']); $listing_coupon_code = sanitize_text_field($params['coupon_code']); $listing_coupon_referral = esc_url($params['coupon_referral']); $listing_coupon_exp = sanitize_text_field($params['coupon_exp']); $listing_coupon_desc = sanitize_textarea_field($params['coupon_desc']); $listing_street = sanitize_text_field($params['street_addr']); $listing_lattitude = sanitize_text_field($params['lat']); $listing_longitide = sanitize_text_field($params['long']); $country = sanitize_text_field($params['country']); $state = sanitize_text_field($params['state']); $city = sanitize_text_field($params['city']); $town = sanitize_text_field($params['town']); $listing_brandname = sanitize_text_field($params['brandname']); $is_update = sanitize_text_field($params['is_update']); if($listing_title == '' || $listing_category == '' || $listing_contact == '' || $ad_desc == '' || $listing_street == '') { return rest_ensure_response(array( 'success' => false, 'message' => __( "Please fill out all fields", 'dwt-listing-api' ))); } if(empty($is_update)) { if(get_user_meta($user_id, 'listing_in_progress', true ) !="") { $listing_id = get_user_meta($user_id, 'listing_in_progress', true ); if( get_post_status ( $listing_id ) && $listing_id != "" && get_post_status( $listing_id ) == 'pending') { $listing_id = $listing_id; update_post_meta($listing_id, 'dwt_listing_listing_status', '' ); } else { update_user_meta($user_id, 'listing_in_progress',''); $my_post = array( 'post_title' => '', 'post_status' => 'pending', 'post_author' => $user_id, 'post_type' => 'listing' ); $id = wp_insert_post( $my_post ); if( $id ) { update_user_meta($user_id, 'listing_in_progress', $id ); $listing_id = $id; update_post_meta($listing_id, 'dwt_listing_listing_status', '' ); } } } else { $my_post = array( 'post_title' => '', 'post_status' => 'pending', 'post_author' => $user_id, 'post_type' => 'listing' ); $id = wp_insert_post( $my_post ); if($id) { update_user_meta($user_id, 'listing_in_progress', $id ); $listing_id = $id; update_post_meta($listing_id, 'dwt_listing_listing_status', '' ); } } } $ad_status = 'publish'; if($is_update != "") { $listing_id = $is_update; if($dwt_listing_options['dwt_listing_up_approval'] == 'manual') { $ad_status = 'pending'; } else if( $dwt_listing_options['dwt_listing_up_approval'] == 'auto') { $ad_status = 'publish'; } else if(get_post_status($event_id) == 'pending') { $ad_status = 'pending'; } else { $ad_status = 'publish'; } } else { if( $dwt_listing_options['dwt_listing_ad_approval'] == 'manual' ) { $ad_status = 'pending'; } else { $ad_status = 'publish'; } if(get_user_meta($user_id, 'listing_in_progress', true ) !="") { // Now user can post new ad delete_user_meta($user_id, 'listing_in_progress'); $regular_listing = get_user_meta($user_id, 'dwt_listing_regular_listing', true); if( $regular_listing > 0 && !is_super_admin($user_id)) { $regular_listing = $regular_listing - 1; update_user_meta($user_id, 'dwt_listing_regular_listing',$regular_listing); } update_post_meta($listing_id, 'dwt_listing_ad_status', 'active'); update_post_meta($listing_id, 'dwt_listing_is_feature', '0'); dwt_listing_notify_on_new_listing($listing_id); } } //save fields update_post_meta($listing_id, 'dwt_listing_listing_status', '1' ); update_post_meta($listing_id, 'dwt_listing_listing_contact', $listing_contact); update_post_meta($listing_id, 'dwt_listing_listing_weburl', $listing_web_url); //price type $price_type = ''; if($listing_price_type !="") { wp_set_post_terms( $listing_id, $listing_price_type, 'l_price_type'); $term_name = get_term_by('id', $listing_price_type, 'l_price_type'); update_post_meta($listing_id, 'dwt_listing_listing_priceType', $term_name->name); /*$pricetype_arr = explode( '|', $listing_price_type); wp_set_post_terms( $listing_id, $pricetype_arr[0], 'l_price_type'); $price_type = $pricetype_arr[1]; */ } //update_post_meta($listing_id, 'dwt_listing_listing_priceType', $price_type); //currency type $currency_type = ''; if($listing_currency_type !="") { wp_set_post_terms( $listing_id, $listing_currency_type, 'l_currency'); $term_name = get_term_by('id', $listing_currency_type, 'l_currency'); update_post_meta($listing_id, 'dwt_listing_listing_currencyType', $term_name->name); /*$currency_arr = explode( '|', $listing_currency_type); wp_set_post_terms( $listing_id, $currency_arr[0], 'l_currency'); $currency_type = $currency_arr[1]; */ } //update_post_meta($listing_id, 'dwt_listing_listing_currencyType', $currency_type); update_post_meta($listing_id, 'dwt_listing_listing_pricefrom', $listing_price_from); update_post_meta($listing_id, 'dwt_listing_listing_priceto', $listing_price_to); //saving business hours if(isset($listing_is_open) && $listing_is_open !="") { if($listing_is_open == 1) { update_post_meta($listing_id, 'dwt_listing_is_hours_allow', '1'); update_post_meta($listing_id, 'dwt_listing_business_hours', $listing_is_open); } else if($listing_is_open == '2') { //business hours $custom_days = array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'); for ($a = 0; $a <= 6; $a++) { $to = ''; $from = ''; $days = ''; //get days $days = lcfirst( $custom_days[$a] ); if(!in_array($a,$is_closed_app)) { $from = date("H:i:s", strtotime(str_replace(" : ", ":", $end_from_app[$a]))); $to = date("H:i:s", strtotime(str_replace(" : ", ":", $start_from_app[$a]))); //day status open or not update_post_meta($listing_id, '_timingz_'.$days.'_open', '1' ); //day hours from update_post_meta($listing_id, '_timingz_'.$days.'_from', $from ); update_post_meta($listing_id, '_timingz_'.$days.'_to', $to ); } else { update_post_meta($listing_id, '_timingz_'.$days.'_open', '0' ); } } update_post_meta($listing_id, 'dwt_listing_business_hours', 0); update_post_meta($listing_id, 'dwt_listing_user_timezone', $listing_timezone); update_post_meta($listing_id, 'dwt_listing_is_hours_allow', '1'); } else { update_post_meta($listing_id, 'dwt_listing_is_hours_allow', '0'); } } //social media address update_post_meta($listing_id, 'dwt_listing_listing_fb', $listing_fb); update_post_meta($listing_id, 'dwt_listing_listing_tw', $listing_tw); update_post_meta($listing_id, 'dwt_listing_listing_in', $listing_in); update_post_meta($listing_id, 'dwt_listing_youtube', $listing_youtube); update_post_meta($listing_id, 'dwt_listing_insta', $listing_insta); // video tags & email if(!empty($listing_video)) { update_post_meta($listing_id, 'dwt_listing_listing_video', $listing_video); } else { update_post_meta($listing_id, 'dwt_listing_listing_video', '' ); } update_post_meta($listing_id, 'dwt_listing_related_email', $listing_contact_email); if(!empty($listing_tags)) { $tags = explode(',',$listing_tags); wp_set_object_terms($listing_id, $tags, 'l_tags'); } // video tags & email update_post_meta($listing_id, 'dwt_listing_brand_name', $listing_brandname); // coupon code here update_post_meta($listing_id, 'dwt_listing_coupon_title', $listing_coupon); update_post_meta($listing_id, 'dwt_listing_coupon_code', $listing_coupon_code); update_post_meta($listing_id, 'dwt_listing_coupon_refer', $listing_coupon_referral); update_post_meta($listing_id, 'dwt_listing_coupon_desc', $listing_coupon_desc); if(!empty($listing_coupon_exp)) { update_post_meta($listing_id, 'dwt_listing_coupon_expiry', $listing_coupon_exp); } //locations & map update_post_meta($listing_id, 'dwt_listing_listing_street', $listing_street); update_post_meta($listing_id, 'dwt_listing_listing_lat', $listing_lattitude); update_post_meta($listing_id, 'dwt_listing_listing_long', $listing_longitide); //custom location $countries = array(); if(!empty($country)) { $countries[] = $country; } if(!empty($state)) { $countries[] = $state; } if(!empty($city)) { $countries[] = $city; } if(!empty($town)) { $countries[] = $town; } wp_set_post_terms( $listing_id, $countries, 'l_location' ); // title & tescription $words = explode( ',', $dwt_listing_options['dwt_listing_bad_words_filter'] ); $replace = $dwt_listing_options['dwt_listing_bad_words_replace']; $desc = dwt_listing_badwords_filter( $words, $ad_desc, $replace ); $title = dwt_listing_badwords_filter( $words, $listing_title, $replace ); $desc = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $desc); $up = array( 'ID' => $listing_id, 'post_title' => $title, 'post_status' => $ad_status, 'post_content' => $desc, 'post_name' =>$title ); wp_update_post($up); /*categories*/ $category = array(); $category_main = array(); $category_sub = array(); if(!empty($listing_category)) { $category_main[] = $listing_category; $final_amenties = explode(',',$listing_amenties); $category_sub = $final_amenties; //check if parent has any child $if_cats = dwt_listing_categories_fetch('l_category',$listing_category); if( count( $if_cats ) > 0 ) { $category = array_merge($category_main, $category_sub); } else { $category[] = $listing_category; } wp_set_post_terms( $listing_id, $category, 'l_category' ); } //Featured Listing if( isset( $params['is_featured'] ) && $params['is_featured'] == "1" ) { // Getting User Featured Ads. $featured_ad = get_user_meta($user_id, 'dwt_listing_featured_listing', true); if( $featured_ad > 0) { update_post_meta($listing_id, 'dwt_listing_is_feature', '1' ); update_post_meta( $listing_id, 'dwt_listing_feature_ad_expiry_days', date( 'Y-m-d' ) ); $featured_ad = $featured_ad - 1; update_user_meta($user_id, 'dwt_listing_featured_listing', $featured_ad ); } } //Bump Listing if( isset( $params['is_bump'] ) && $params['is_bump'] == "1" ) { // Getting User Featured Ads. $bump_linting = get_user_meta($user_id, 'dwt_listing_bump_listing', true); if( $bump_linting > 0 ) { $current_time = current_time('mysql'); wp_update_post ( array ( 'ID' => $listing_id, 'post_date' => $current_time, 'post_date_gmt' => get_gmt_from_date($current_time) ) ); update_post_meta($listing_id, 'dwt_listing_is_bump', '1' ); $bump_linting = $bump_linting - 1; update_user_meta($user_id, 'dwt_listing_bump_listing', $bump_linting ); } } if( $is_update != "" ) { return rest_ensure_response(array( 'success' => true, 'message' => __( "Listing updated successfully.", 'dwt-listing-api') , 'listing_id' => $listing_id, 'listing_title' => get_the_title($listing_id))); } else { return rest_ensure_response(array( 'success' => true, 'message' => __( "Listing created successfully", 'dwt-listing-api') , 'listing_id' => $listing_id, 'listing_title' => get_the_title($listing_id))); } } } // Brand Image Upload add_action( 'rest_api_init', 'dwt_listing_post_brand_img', 0 ); function dwt_listing_post_brand_img() { register_rest_route( 'downtown/app', '/brand-img/', array( 'methods' => WP_REST_Server::EDITABLE, 'callback' => 'dwt_listing_post_brand_img_app', 'permission_callback' => function () { return dwt_listing_basic_auth(); }, ) ); } if (!function_exists('dwt_listing_post_brand_img_app')) { function dwt_listing_post_brand_img_app($request) { $user = wp_get_current_user(); $user_id = $user->ID; $params = $request->get_body_params(); $is_update = ''; $is_update = sanitize_text_field($params['is_update']); if(empty($is_update)) { if(get_user_meta($user_id, 'listing_in_progress', true ) !="") { $listing_id = get_user_meta($user_id, 'listing_in_progress', true ); if( get_post_status ( $listing_id ) && $listing_id != "" && get_post_status( $listing_id ) == 'pending') { $listing_id = $listing_id; update_post_meta($listing_id, 'dwt_listing_listing_status', '' ); } else { update_user_meta($user_id, 'listing_in_progress',''); $my_post = array( 'post_title' => '', 'post_status' => 'pending', 'post_author' => $user_id, 'post_type' => 'listing' ); $id = wp_insert_post( $my_post ); if( $id ) { update_user_meta($user_id, 'listing_in_progress', $id ); $listing_id = $id; update_post_meta($listing_id, 'dwt_listing_listing_status', '' ); } } } else { $my_post = array( 'post_title' => '', 'post_status' => 'pending', 'post_author' => $user_id, 'post_type' => 'listing' ); $id = wp_insert_post( $my_post ); if($id) { update_user_meta($user_id, 'listing_in_progress', $id ); $listing_id = $id; update_post_meta($listing_id, 'dwt_listing_listing_status', '' ); } } } if($is_update != "") { $listing_id = $is_update; } //save brand image if(!empty($_FILES)) { $file_handler = 'c-cover-brand'; $allowed_file_types = array('image/jpg', 'image/jpeg', 'image/png'); if(!in_array($_FILES[$file_handler]['type'], $allowed_file_types)) { return rest_ensure_response(array( 'success' => false, 'data' => '', 'message' => __( "Sorry, only JPG, JPEG, and PNG files are allowed.",'dwt-listing-api' ))); } if ($_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK) { return rest_ensure_response(array( 'success' => false, 'data' => '', 'message' => $_FILES[$file_handler]['error'] )); } require_once(ABSPATH . "wp-admin" . '/includes/image.php'); require_once(ABSPATH . "wp-admin" . '/includes/file.php'); require_once(ABSPATH . "wp-admin" . '/includes/media.php'); $attach_id = media_handle_upload( $file_handler, $listing_id ); if ( is_wp_error( $attach_id ) ) { return $response = rest_ensure_response(array( 'success' => false, 'data' => '' , 'message' => __("There is a Problem Uploading Your Image.", "dwt-listing-api"))); } else { update_post_meta($listing_id, 'dwt_listing_brand_img',$attach_id); return $response = rest_ensure_response(array( 'success' => true, 'listing_id' => $listing_id, 'brand_img_id' => $attach_id)); } } else { return $response = rest_ensure_response(array( 'success' => false, 'data' => '' , 'message' => __("Brand Image is required.", "dwt-listing-api"))); } } } add_action( 'rest_api_init', 'dwt_listing_delete_brand_imgzz', 0 ); function dwt_listing_delete_brand_imgzz() { register_rest_route( 'downtown/app', '/brand-img-delete/', array( 'methods' => WP_REST_Server::EDITABLE, 'callback' => 'dwt_listing_delete_brand_img_app', 'permission_callback' => function () { return dwt_listing_basic_auth(); }, ) ); } if (!function_exists('dwt_listing_delete_brand_img_app')) { function dwt_listing_delete_brand_img_app($request) { global $dwt_listing_options; $user = wp_get_current_user(); $user_id = $user->ID; $json_data = $request->get_json_params(); $brand_img_id = (isset($json_data['brand_img_id'])) ? sanitize_text_field($json_data['brand_img_id']) : ''; $listing_id = (isset($json_data['listing_id'])) ? sanitize_text_field($json_data['listing_id']) : ''; $attachmentid = $brand_img_id; $data = $gallery_link = array(); if($listing_id == '') { $msg = __( "Whoops Listing ID is required", 'dwt-listing-api' ); return rest_ensure_response(array( 'success' => false, 'data' => '' , 'message' => $msg)); } if($brand_img_id == '') { $msg = __( "Whoops Image ID is required", 'dwt-listing-api' ); return rest_ensure_response(array( 'success' => false, 'data' => '' , 'message' => $msg)); } if ( wp_attachment_is_image($attachmentid ) ) { wp_delete_attachment( $attachmentid, true ); if(get_post_meta($listing_id, 'dwt_listing_brand_img', true) != "") { update_post_meta($listing_id, 'dwt_listing_brand_img', ''); $get_brand_img = ''; $get_brand_img = dwt_listing_get_brand_img("",'dwt_listing_list-view1'); return rest_ensure_response(array( 'success' => true, 'defualt_image' => $get_brand_img , 'message' => '')); } } else { $msg = __( "Selected images is already deleted or not found on server", 'dwt-listing-api' ); return rest_ensure_response(array( 'success' => false, 'data' => '' , 'message' => $msg)); } } } // Gallery Images add_action( 'rest_api_init', 'dwt_listing_post_list_img', 0 ); function dwt_listing_post_list_img() { register_rest_route( 'downtown/app', '/listing-images/', array( 'methods' => WP_REST_Server::EDITABLE, 'callback' => 'dwt_listing_post_list_img_app', 'permission_callback' => function () { return dwt_listing_basic_auth(); }, ) ); } if (!function_exists('dwt_listing_post_list_img_app')) { function dwt_listing_post_list_img_app($request) { global $dwt_listing_options; $displayMaxSize = ''; if ( $_SERVER['REQUEST_METHOD'] == 'POST' && empty($_POST) && $_SERVER['CONTENT_LENGTH'] > 0) { $displayMaxSize = ini_get('post_max_size'); switch ( substr($displayMaxSize,-1) ) { case 'G': $displayMaxSize = (int)$displayMaxSize * 1024; case 'M': $displayMaxSize = (int)$displayMaxSize * 1024; case 'K': $displayMaxSize = (int) $displayMaxSize * 1024; } return rest_ensure_response(array( 'success' => false, 'data' => '', 'message' => sprintf( __( 'Posted data is too large %s bytes exceeds the maximum size of %d bytes.', 'dwt-listing-api' ), $_SERVER['CONTENT_LENGTH'], $displayMaxSize))); } $user = wp_get_current_user(); $user_id = $user->ID; $params = $request->get_body_params(); $is_update = ''; $is_update = sanitize_text_field($params['is_update']); if(empty($is_update)) { if(get_user_meta($user_id, 'listing_in_progress', true ) !="") { $listing_id = get_user_meta($user_id, 'listing_in_progress', true ); if( get_post_status ( $listing_id ) && $listing_id != "" && get_post_status( $listing_id ) == 'pending') { $listing_id = $listing_id; update_post_meta($listing_id, 'dwt_listing_listing_status', '' ); } else { update_user_meta($user_id, 'listing_in_progress',''); $my_post = array( 'post_title' => '', 'post_status' => 'pending', 'post_author' => $user_id, 'post_type' => 'listing' ); $id = wp_insert_post( $my_post ); if( $id ) { update_user_meta($user_id, 'listing_in_progress', $id ); $listing_id = $id; update_post_meta($listing_id, 'dwt_listing_listing_status', '' ); } } } else { $my_post = array( 'post_title' => '', 'post_status' => 'pending', 'post_author' => $user_id, 'post_type' => 'listing' ); $id = wp_insert_post( $my_post ); if($id) { update_user_meta($user_id, 'listing_in_progress', $id ); $listing_id = $id; update_post_meta($listing_id, 'dwt_listing_listing_status', '' ); } } } if($is_update != "") { $listing_id = $is_update; } $number_of_images = 5; $package_id = ''; if( get_user_meta($user_id, 'd_user_package_id', true ) != "" ) { $package_id = get_user_meta($user_id, 'd_user_package_id', true ); if(get_post_meta($package_id, 'no_of_images', true ) !="") { $number_of_images = get_post_meta($package_id, 'no_of_images', true ); } } if(!empty($_FILES)) { $galleryz = $list_creatz = array(); $has_gallery = false; $mediaz = ''; require_once ABSPATH . 'wp-admin/includes/image.php'; require_once ABSPATH . 'wp-admin/includes/file.php'; require_once ABSPATH . 'wp-admin/includes/media.php'; $uploaded_file_size = $actual_size = $display_size = $size_arr = $allowed_file_types = $uploaded_file_type = ''; $size_arr = explode( '-', $dwt_listing_options['dwt_listing_image_up_size'] ); $display_size = $size_arr[1]; $actual_size = $size_arr[0]; $files = $_FILES["multi_images"]; foreach ($files['name'] as $key => $value) { if ($files['name'][$key]) { $galleryz = array(); $mediaz = dwt_listing_fetch_listing_gallery($listing_id); if( count((array) $mediaz ) > 0 ) { $has_gallery = true; foreach( $mediaz as $m ) { $mid = ''; if ( isset( $m->ID ) ) { $mid = $m->ID; } else { $mid = $m; } $full_img = $thumb_imgs = ''; $full_img = wp_get_attachment_image_src($mid, 'dwt_listing_user-dp'); $galleryz[] = array( "url" => esc_url($full_img[0]), "image_id" => esc_attr($mid), "listing_id" =>$listing_id, ); } } $file = array( 'name' => $files['name'][$key], 'type' => $files['type'][$key], 'tmp_name' => $files['tmp_name'][$key], 'error' => $files['error'][$key], 'size' => $files['size'][$key] ); $uploaded_file_type = $files['type'][$key]; $uploaded_file_size = $files['size'][$key]; $allowed_file_types = array('image/jpg', 'image/jpeg', 'image/png'); if(!in_array($uploaded_file_type, $allowed_file_types)) { return rest_ensure_response(array( 'success' => false, 'data' => '', 'message' => __( "Sorry, only JPG, JPEG, and PNG files are allowed.",'dwt-listing-api' ))); } if ($uploaded_file_size > $actual_size) { return rest_ensure_response(array( 'success' => false, 'data' => '', 'message' => esc_html__( "Max allowed image size is", 'dwt-listing-api' ) . " " . $display_size)); } // Check max image limit $media = ''; $media = get_attached_media('image',$listing_id); $list_creatz = array(); if(count($media) >= $number_of_images) { $msg = esc_html__("Sorry you cant upload more than ",'dwt-listing-api'); $images_l = esc_html__(" images ",'dwt-listing-api'); $list_creatz['gallery'] = array("main_title" => dwt_listing_text('dwt_listing_list_gallery') , "placeholder" => __("Select Pics", "dwt-listing-api"),"is_required" => true,"has_gallery" => $has_gallery,"dropdown" => $galleryz); return array( 'success' => true, 'data' => $list_creatz, 'message' => $msg . $number_of_images . $images_l); } $_FILES = array ("multi_images" => $file); foreach ($_FILES as $file => $array) { $attachment_id = media_handle_upload('multi_images', $listing_id); if (is_wp_error($attachment_id)) { return $response = rest_ensure_response(array( 'success' => false, 'data' => '' , 'message' => esc_html__("Sorry, this file type is not permitted for security reason. ",'dwt-listing-api'))); } else { if(get_post_meta( $listing_id, 'dwt_listing_photo_arrangement_', true ) !="") { $imgaes = ''; $imgaes = get_post_meta($listing_id, 'dwt_listing_photo_arrangement_', true ); $imgaes = $imgaes .',' . $attachment_id; update_post_meta( $listing_id, 'dwt_listing_photo_arrangement_',$imgaes); } else { update_post_meta( $listing_id, 'dwt_listing_photo_arrangement_',$attachment_id); } } } } } $galleryzz = $list_creatz = array(); $has_gallery = false; $mediazz = ''; $mediazz = dwt_listing_fetch_listing_gallery($listing_id); if( count((array) $mediazz ) > 0 ) { $has_gallery = true; foreach( $mediazz as $m ) { $midz = ''; if ( isset( $m->ID ) ) { $midz = $m->ID; } else { $midz = $m; } $full_img = $thumb_imgs = ''; $full_img = wp_get_attachment_image_src($midz, 'dwt_listing_user-dp'); $galleryzz[] = array( "url" => esc_url($full_img[0]), "image_id" => esc_attr($midz), "listing_id" =>$listing_id, ); } } $list_creatz['gallery'] = array("main_title" => dwt_listing_text('dwt_listing_list_gallery') , "placeholder" => __("Select Pics", "dwt-listing-api"),"is_required" => true,"has_gallery" => $has_gallery,"dropdown" => $galleryzz); return rest_ensure_response(array( 'success' => true, 'data' => $list_creatz)); } else { return rest_ensure_response(array( 'success' => false, 'data' => '' , 'message' => __("Images are required.", "dwt-listing-api"))); } } } // Delete Gallery Images add_action( 'rest_api_init', 'dwt_listing_del_list_img', 0 ); function dwt_listing_del_list_img() { register_rest_route( 'downtown/app', '/listing-images-delete/', array( 'methods' => WP_REST_Server::EDITABLE, 'callback' => 'dwt_listing_delete_listz_img', 'permission_callback' => function () { return dwt_listing_basic_auth(); }, ) ); } if (!function_exists('dwt_listing_delete_listz_img')) { function dwt_listing_delete_listz_img($request) { global $dwt_listing_options; $user = wp_get_current_user(); $user_id = $user->ID; $json_data = $request->get_json_params(); $listing_img_id = (isset($json_data['image_id'])) ? sanitize_text_field($json_data['image_id']) : ''; $listing_id = (isset($json_data['listing_id'])) ? sanitize_text_field($json_data['listing_id']) : ''; $attachmentid = $listing_img_id; $data = $gallery_link = array(); if( dwt_listing_text('dwt_listing_disable_edit') == '1' && !is_super_admin( get_current_user_id())) { return rest_ensure_response(array( 'success' => false, 'data' => '', 'message' => __( "Disable for Demo.", 'dwt-listing-api'))); } if($listing_id == '') { $msg = __( "Whoops Listing ID is required", 'dwt-listing-api' ); return rest_ensure_response(array( 'success' => false, 'data' => '' , 'message' => $msg)); } if($listing_img_id == '') { $msg = __( "Whoops Image ID is required", 'dwt-listing-api' ); return rest_ensure_response(array( 'success' => false, 'data' => '' , 'message' => $msg)); } if ( wp_attachment_is_image($attachmentid ) ) { wp_delete_attachment( $attachmentid, true ); if(get_post_meta($listing_id, 'dwt_listing_photo_arrangement_', true) != "") { $img_ids = $res = $ids = ''; $ids = get_post_meta( $listing_id, 'dwt_listing_photo_arrangement_', true ); $res = str_replace($attachmentid, "", $ids); $res = str_replace(',,', ",", $res); $img_ids = trim($res,','); update_post_meta($listing_id, 'dwt_listing_photo_arrangement_',$img_ids); $list_creatz = array(); $has_gallery = false; $media = ''; $media = dwt_listing_fetch_listing_gallery($listing_id); if( count((array) $media ) > 0 ) { $has_gallery = true; foreach( $media as $m ) { $mid = ''; if ( isset( $m->ID ) ) { $mid = $m->ID; } else { $mid = $m; } $full_img = $thumb_imgs = ''; $full_img = wp_get_attachment_image_src($mid, 'dwt_listing_user-dp'); $gallery[] = array( "url" => esc_url($full_img[0]), "image_id" => esc_attr($mid), "listing_id" =>$listing_id, ); } } $list_creatz['gallery'] = array("main_title" => dwt_listing_text('dwt_listing_list_gallery') , "placeholder" => __("Select Pics", "dwt-listing-api"),"is_required" => true,"has_gallery" => $has_gallery,"dropdown" => $gallery); return rest_ensure_response(array( 'success' => true, 'data' => $list_creatz)); } } else { $msg = __( "Selected images is already deleted or not found on server", 'dwt-listing-api' ); return rest_ensure_response(array( 'success' => false, 'data' => '' , 'message' => $msg)); } } }
[+]
..
[-] submit.php
[edit]