php - Uncaught SyntaxError: Unexpected token on some hosting providers -
when vin number added in admin , button pressed data, in hosting providers i'm getting error , spinning loading wheel of death, while other providers , in localhost info correctly. why not consistent , can make work time?
the error on google chrome console is:
uncaught syntaxerror: unexpected token
and if click on arrow expand error show [object][object].
here code:
<?php add_action('wp_ajax_rw_api_data', 'rw_api_data'); function rw_api_data(){ if ( isset($_post["vin"]) && strlen($_post["vin"]) === 17 ){ $api_key = get_option('edmund_api'); $vin = $_post["vin"]; // basic details $url = sprintf( "https://api.edmunds.com/api/vehicle/v2/vins/%s?&fmt=json&api_key=%s" , $vin , $api_key ); $get_response = wp_remote_get($url); if( !is_wp_error( $get_response ) ) : $basic_data = json_decode( $get_response["body"], true); $style_id = isset($_post["style"]) && $_post["style"] ? $_post["style"] : false; $post_id = (int)$_post["id"]; if( !isset( $basic_data["errortype"] ) ) : $styles = array(); $elements = array(); foreach( $basic_data['years'] $year ): foreach( $year["styles"] $style ) : $styles[] = array( "year" => $year["year"], "style" => $style ); endforeach; endforeach; if( count( $styles ) === 1 || $style_id !== false ) : $style_id = $style_id ? $style_id : $basic_data['years'][0]["styles"][0]["id"]; // equipment details $url = sprintf( "https://api.edmunds.com/api/vehicle/v2/styles/%s/equipment?fmt=json&api_key=%s",$style_id,$api_key); $get_response = wp_remote_get($url); if( !is_wp_error( $get_response ) ) : $equipment_data = json_decode($get_response["body"], true); $features = array(); // year $elements["year"] = $basic_data['years'][0]["year"]; foreach( $basic_data["colors"] $color ): if( $color['category'] == "interior" || $color['category'] == "exterior" ) : $color_key = strtolower($color['category']); foreach( $color["options"] $color_option ) : if( !empty( $elements[$color_key] ) ) $elements[$color_key] .= ", " ; else $elements[$color_key] = ""; $elements[$color_key] .= $color_option["name"]; endforeach; endif; endforeach; // vehicle type switch( strtolower( $basic_data["categories"]["vehiclestyle"] ) ) : case "sedan" : $elements["vehicletype"] = "sedans , coupes"; break; case "coupe" : $elements["vehicletype"] = "sports cars"; break; case "wagon" : $elements["vehicletype"] = "wagons"; break; case "passenger minivan" : $elements["vehicletype"] = "minivans , vans"; break; case "crew cab pickup" : $elements["vehicletype"] = "pickup trucks"; break; case "4dr hatchback" : $elements["vehicletype"] = "hybrids"; break; case "convertible" : $elements["vehicletype"] = "convertibles"; break; case "4dr suv" : $elements["vehicletype"] = "sport utilities"; break; default : $elements["vehicletype"] = $basic_data["categories"]["vehiclestyle"]; break; endswitch; // drive $elements['drive'] = $basic_data['drivenwheels']; // transmission switch( $basic_data["transmission"]["transmissiontype"] ) : case "automatic" : $elements['transmission'] = 'automatic'; break; case "manual" : $elements['transmission'] = 'manual'; break; case "semi-auto" : $elements['transmission'] = 'semi-auto'; break; default : $elements['transmission'] = 'other'; break; endswitch; // vin $elements['vin'] = $basic_data["vin"]; // engine size $elements['enginesize'] = $basic_data['engine']['size']; // number of cylinders $elements['cylinders'] = $basic_data['engine']['cylinder']; // horsepower $elements['horsepower'] = $basic_data['engine']['horsepower']; $elements['enginetype'] = $basic_data['engine']['type']; $equipment_relations = array( "air conditioning" => array( "front air conditioning" => "front_air_conditioning" ), "brake system" => array( "front brake type" => "front_brake_type", "rear brake diameter" => "rear_brake_diameter", "braking assist" => "braking_assist", "antilock braking system" => "antilock_braking_system" ), "security" => array( "power door locks" => "power_door_locks", "anti theft alarm system" => "anti_theft_alarm_system" ), "mirrors" => array( "1st row vanity mirrors" => "1st_row_vanity_mirrors", "heated driver side mirror" => "heated_driver_side_mirror", "heated passenger side mirror" => "heated_passenger_side_mirror", "auto dimming rearview mirror" => "auto_dimming_rearview_mirror" ), "tires" => array( "option" => "tires" ), "suspension" => array( "rear suspension type" => "rear_suspension_type", "independent suspension" => "independent_suspension", "front suspension type" => "front_suspension_type" ), "airbags" => array( "passenger airbag" => "passenger_airbag" ), "specifications" => array( "fuel capacity" => "fuelcapacity", "curb weight" => "curbweight", "epa city mpg" => "epa_city_mpg", "epa highway mpg" => "epa_highway_mpg" ), "cargo dimensions" => array( "max cargo capacity" => "max_cargo_capacity" ), "exterior dimensions" => array( "overall width without mirrors" => "width", "overall height" => "height", "overall length" => "overalllength", "wheelbase" => "wheelbase" ), "interior dimensions" => array( "1st row head room" => "headroom", "1st row leg room" => "legroom", "1st row head room" => "headroom" ), "steering wheel" => array( "audio controls on steering wheel" => "audio_controls_on_steering_wheel", "cruise controls on steering wheel" => "cruise_controls_on_steering_wheel" ), "misc. exterior features" => array( "roof rack" => "roof_rack", "running boards" => "running_boards" ), "misc. interior features" => array( "cruise control" => "cruise_control" ), "2nd row seats" => array( "folding 2nd row" => "folding_2nd_row" ), "power outlets" => array( "1st row power outlet" => "1st_row_power_outlet", "cargo area power outlet" => "cargo_area_power_outlet" ), "trailer hitch" => "trailer_hitch", "trailer wiring" => "trailer_wiring", "running boards" => "running_boards" ); $tags_relations = array( "airbags" => array( "side airbags" => "name", "passenger airbag" => "name", "head airbags" => "name", "knee airbags" => "name", "hip airbags" => "name" ), "air conditioning" => array( "front air conditioning" => "ac", "air filtration" => "name", "sun sensor" => "name" ), "audio system" => array( "cd player" => "name", "cd mp3 playback" => "mp3", "radio" => "radio", "satellite radio" => "name", "usb connection" => "name" ), "brake system" => array( "antilock braking system" => "abs", "braking assist" => "name", "brake drying" => "name", "emergency braking preparation" => "name" ), "convertible roof" => array( "convertible roof" => "name", "convertible window" => "name" ), "doors" => array( "number of doors" => "num_doors" ), "driver seat" => array( "heated driver seat" => "name", "height adjustable driver seat" => "name" ), "drive type" => array( "driven wheels" => "driven_wheels" ), "exterior lights" => array( "front fog lights" => "name", "headlights auto delay" => "had", "daytime running lights" => "name", "headlights dusk sensor" => "name" ), "front passenger seat" => array( "heated passenger seat" => "name" ), "instrumentation" => array( "tachometer" => "name", "low fuel level indicator" => "name", "tire pressure monitoring system" => "name", "compass" => "name", "external temperature gauge" => "name", "head display" => "name", "trip computer" => "name", "transmission temperature gauge" => "name" ), "misc. exterior features" => array( "rear spoiler" => "name" ), "misc. interior features" => array( "cruise control" => "name", "cargo area light" => "name", "reading lights" => "name" ), "mirrors" => array( "heated exterior mirrors" => "name", "heated passenger side mirror" => "name", "auto dimming rearview mirror" => "name", "auto dimming side mirrors" => "name" ), "mobile connectivity" => array( "phone" => "name", "bluetooth" => "name" ), "parking aid" => array( "parking sensors" => "name" ), "security" => array( "engine immobilizer" => "name", "anti theft alarm system" => "alarm", "power door locks" => "door_locks", "2 stage unlocking" => "name" ), "spare tire/wheel" => array( "tire repair kit" => "name" ), "standard audio" => array( "cd player" => "name", "cd mp3 playback" => "mp3", "radio" => "radio", "satellite radio" => "name", "usb connection" => "name" ), "steering wheel" => array( "audio controls on steering whee" => "name", "phone controls on steering whee" => "name" ), "sunroof" => array( "sunroof" => "name" ), "windows" => array( "rear defogger" => "name", "rain sensing front wipers" => "name", "remote window operation" => "name" ) ); foreach( $equipment_data["equipment"] $equipment_item ) : $ename = $equipment_item["name"]; // counting number of seats if( $ename == "seating configuration" ) : $elements['seatingcapacity'] = 0; foreach( $equipment_item["attributes" ] $attribute ) : $elements['seatingcapacity'] += intval($attribute["value"]); endforeach; // getting engine details elseif( $ename == "engine" ) : if( !$elements['enginesize'] ): $elements['enginesize'] = $equipment_item["size"]; endif; if( !$elements['cylinders'] ): $elements['cylinders'] = $equipment_item["cylinder"]; endif; if( !$elements['horsepower'] ): $elements['horsepower'] = $equipment_item["horsepower"]; endif; if( !$elements['enginetype'] ): $elements['enginetype'] = $equipment_item["type"]; endif; else : // relation exists if( isset( $equipment_relations[ $ename ] ) ) : if( is_array( $equipment_relations[ $ename ] ) ) : foreach( $equipment_item["attributes" ] $attribute ) : $aname = $attribute["name"]; if( isset( $equipment_relations[ $ename ][ $aname ] ) ) : $elements[ $equipment_relations[ $ename ][ $aname ] ] = $attribute["value"]; endif; endforeach; if( isset( $equipment_relations[ $ename ][ "option" ] ) && isset( $equipment_item["options" ] ) && count( $equipment_item["options" ] ) > 0 ) : $elements[ $equipment_relations[ $ename ][ "option" ] ] = $equipment_item["options" ][0]["name"]; endif; else : $elements[ $equipment_relations[ $ename ] ] = "yes"; endif; endif; endif; if( isset( $tags_relations[ $ename ] ) ) : foreach( $equipment_item["attributes" ] $attribute ) : $aname = $attribute["name"]; if( isset( $tags_relations[ $ename ][ $aname ] ) ) : if( $tags_relations[ $ename ][ $aname ] === "name" ): $features[ $aname ] = $aname; else : $features[ $tags_relations[ $ename ][ $aname ] ] = $attribute["value"]; endif; endif; endforeach; endif; endforeach; /******** start features tags *************/ $tags = array(); // generate tags matched equipment foreach( $features $feature_name=>$feature_value ) : switch( $feature_name ) : case "num_doors" : $tags[] = $feature_value . " door"; break; case "abs" : switch( $feature_value ) : case "4-wheel abs" : $tags[] = "4-wheel abs brakes"; break; default : $tags[] = $feature_value; break; endswitch; break; case "ac" : $tags[] = "air conditioning"; break; case "heated_exterior_mirrors" : $tags[] = "heated exterior mirrors"; break; case "driven_wheels" : $tags[] = ucwords(strtolower($feature_value)); break; case "had" : $tags[] = "headlights off auto delay"; break; case "mp3" : $tags[] = "mp3"; break; case "radio" : $tags[] = $feature_value . " radio"; break; default : $tags[] = $feature_value; break; endswitch; endforeach; // generate tags element values foreach( $elements $element_key=>$element_value ) : switch( $element_key ) : case "seatingcapacity" : $tags[] = $element_value . " seats"; break; case "trailer_hitch" : $tags[] = "trailer hitch"; break; case "trailer_wiring" : $tags[] = "trailer wiring"; break; case "running_boards" : $tags[] = "running boards"; break; endswitch; endforeach; /******** end features tags *************/ if( $elements["cruise_controls_on_steering_wheel"] == "cruise controls" ) : $elements["cruise_controls_on_steering_wheel"] = "yes"; endif; if( $elements["audio_controls_on_steering_wheel"] == "audio controls" ) : $elements["audio_controls_on_steering_wheel"] = "yes"; endif; $elements['make'] = $basic_data["make"]["name"]; $elements['model'] = $basic_data["model"]["name"]; // post data $elements['post_name'] = $basic_data["model"]["id"]; $elements['post_title'] = $elements['make'] . ' ' . $elements['model'] . ' ' . $elements["year"]; $response["tags"] = join(",",$tags); $makemodel_terms = array(); $make_term = term_exists( $basic_data["make"]["name"] , 'makemodel' , 0 ); if( $make_term !== 0 && $make_term !== null ) : $makemodel_terms[] = (int)$make_term["term_id"]; else : $make_term = wp_insert_term( $basic_data["make"]["name"] , 'makemodel'); if( !is_wp_error( $make_term ) ) : $makemodel_terms[] = (int)$make_term["term_id"]; endif; endif; $model_term = term_exists( $basic_data["model"]["name"] , 'makemodel' , $make_term["term_id"] ); if( $model_term !== 0 && $model_term !== null ) : $makemodel_terms[] = (int)$model_term["term_id"]; else : $model_term = wp_insert_term( $basic_data["model"]["name"] , 'makemodel', array( "parent" => $make_term["term_id"] )); if( !is_wp_error( $model_term ) ) : $makemodel_terms[] = $model_term["term_id"]; endif; endif; wp_set_object_terms( $post_id, $makemodel_terms, 'makemodel' ); ob_start(); wp_terms_checklist( $post_id, array( 'taxonomy' => 'makemodel', 'popular_cats' => wp_popular_terms_checklist( 'makemodel' , "" , 10, false ) ) ); $elements["makemodelchecklist"] = ob_get_clean(); ob_start(); wp_popular_terms_checklist( 'makemodel' ); $elements["makemodelchecklist-pop"] = ob_get_clean(); //$elements["newtag[features]"] = join(",",$features); $response["elements"] = $elements; $response["error"] = false; else : $response["error"] = true; $response["error_message"] = $get_response->get_error_message(); endif; else : $response["styles"] = "<option value='' >select specific style</option>"; $current_year = false; foreach( $styles $style ) : if( $current_year !== $style["year"] ) : if( $current_year !== false ) : $response["styles"] .= "</optgroup>"; endif; $response["styles"] .= sprintf( "<optgroup label='%s' >" , "year " . $style["year"] ); $current_year = $style["year"]; endif; $response["styles"] .= sprintf( "<option value='%s' >%s</option>" , $style["style"]["id"] , $style["style"]["name"] ); endforeach; $response["styles"] .= "</optgroup>"; $response["error"] = true; endif; else : $response["error"] = true; $response["error_message"] = $basic_data["message"]; endif; else : $response["error"] = true; $response["error_message"] = $get_response->get_error_message(); endif; header("content-type:application/json"); echo json_encode($response); die(); } } ?>
the problem not seem dependent of os or browser.
Comments
Post a Comment