8889841cPK [oH pa-pins-handler.phpnu [ editor->is_edit_mode(); if ( $is_edit_mode || false === $response ) { $limit = $settings['no_of_posts']; if ( 'pins/' === $endpoint && empty( $filter_id ) && 1 === count( $settings['board_id'] ) ) { $board_id = $settings['board_id'][0]; $endpoint = 'boards/' . $board_id . '/' . $endpoint; } if ( 'boards/' === $endpoint && 1 === count( $settings['board_id'] ) ) { $endpoint .= $settings['board_id'][0]; } $url = PINTEREST_API_URL . $endpoint . $filter_id; if ( empty( $filter_id ) && ! empty( $limit ) ) { $url .= '?page_size=' . $limit; } sleep( 2 ); $response = wp_remote_get( $url, array( 'headers' => array( 'Authorization' => 'Bearer ' . $token, ), ) ); if ( is_wp_error( $response ) ) { return; } $response = wp_remote_retrieve_body( $response ); $response = json_decode( $response, true ); $transient = $settings['reload']; $expire_time = Helper_Functions::transient_expire( $transient ); set_transient( $transient_name, $response, $expire_time ); } if ( 'pins/' === $original_endpoint ) { $items = ! empty( $filter_id ) ? array( $response ) : $response['items']; } else { $items = 1 === count( $settings['board_id'] ) ? array( $response ) : $response['items']; } if ( empty( $filter_id ) ) { $detect = new \PA_Mobile_Detect(); if ( $detect->isTablet() && ! empty( $settings['no_of_posts_tablet'] ) ) { $items = array_slice( $items, 0, $settings['no_of_posts_tablet'] ); } elseif ( $detect->isMobile() && ! empty( $settings['no_of_posts_mobile'] ) ) { $items = array_slice( $items, 0, $settings['no_of_posts_mobile'] ); } } return $items; } function get_profile_data( $id, $settings ) { $token = $settings['access_token']; $transient_name = sprintf( 'papro_pinterest_profile_%s_%s', $id, substr( $token, -8 ) ); $response = get_transient( $transient_name ); if ( false === $response ) { $url = PINTEREST_API_URL . 'user_account'; sleep( 2 ); $response = wp_remote_get( $url, array( 'headers' => array( 'Authorization' => 'Bearer ' . $token, ), ) ); if ( is_wp_error( $response ) ) { return; } $response = wp_remote_retrieve_body( $response ); $response = json_decode( $response, true ); $transient = $settings['reload']; $expire_time = Helper_Functions::transient_expire( $transient ); set_transient( $transient_name, $response, $expire_time ); } return $response; } function get_board_pins( $widget_id, $settings, $board_id ) { $token = $settings['access_token']; $transient_name = sprintf( 'papro_pinterest_board_%s_%s', $board_id, substr( $token, -8 ) ); $response = get_transient( $transient_name ); $is_edit_mode = \Elementor\Plugin::$instance->editor->is_edit_mode(); if ( $is_edit_mode || false === $response ) { $limit = $settings['pins_per_board']; $url = PINTEREST_API_URL . 'boards/' . $board_id . '/pins'; if ( ! empty( $limit ) ) { $url .= '?page_size=' . $limit; } sleep( 2 ); $response = wp_remote_get( $url, array( 'headers' => array( 'Authorization' => 'Bearer ' . $token, ), ) ); if ( is_wp_error( $response ) ) { return; } $response = wp_remote_retrieve_body( $response ); $response = json_decode( $response, true ); $transient = $settings['reload']; $expire_time = Helper_Functions::transient_expire( $transient ); set_transient( $transient_name, $response, $expire_time ); } $detect = new \PA_Mobile_Detect(); if ( $detect->isTablet() && ! empty( $settings['pins_per_board_tablet'] ) ) { $items = array_slice( $items, 0, $settings['pins_per_board_tablet'] ); } elseif ( $detect->isMobile() && ! empty( $settings['pins_per_board_mobile'] ) ) { $items = array_slice( $items, 0, $settings['pins_per_board_mobile'] ); } return $response['items']; } PK [P! ! urlopen.phpnu [ last_error = 'COULDNT_CONNECT'; return false; } return rplg_json_decode( $response['data'] ); } function rplg_urlopen( $url, $postdata = false, $headers = array() ) { $response = array( 'data' => '', 'code' => 0, ); $url = preg_replace( '/\s+/', '+', $url ); if ( function_exists( 'curl_init' ) ) { if ( ! function_exists( 'curl_setopt_array' ) ) { function curl_setopt_array( &$ch, $curl_options ) { foreach ( $curl_options as $option => $value ) { if ( ! curl_setopt( $ch, $option, $value ) ) { return false; } } return true; } } _rplg_curl_urlopen( $url, $postdata, $headers, $response ); } elseif ( ini_get( 'allow_url_fopen' ) && function_exists( 'stream_get_contents' ) ) { _rplg_fopen_urlopen( $url, $postdata, $headers, $response ); } else { _rplg_fsockopen_urlopen( $url, $postdata, $headers, $response ); } return $response; } /*-------------------------------- curl --------------------------------*/ function _rplg_curl_urlopen( $url, $postdata, $headers, &$response ) { $c = curl_init( $url ); $postdata_str = rplg_get_query_string( $postdata ); $c_options = array( CURLOPT_USERAGENT => RPLG_USER_AGENT, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => ( $postdata_str ? 1 : 0 ), CURLOPT_HEADER => true, CURLOPT_HTTPHEADER => array_merge( array( 'Expect:' ), $headers ), CURLOPT_TIMEOUT => RPLG_SOCKET_TIMEOUT, ); if ( $postdata ) { $c_options[ CURLOPT_POSTFIELDS ] = $postdata_str; } curl_setopt_array( $c, $c_options ); $open_basedir = ini_get( 'open_basedir' ); if ( empty( $open_basedir ) ) { curl_setopt( $c, CURLOPT_FOLLOWLOCATION, true ); } curl_setopt( $c, CURLOPT_SSL_VERIFYPEER, false ); $data = curl_exec( $c ); // cURL automatically handles Proxy rewrites, remove the "HTTP/1.0 200 Connection established" string if ( stripos( $data, "HTTP/1.0 200 Connection established\r\n\r\n" ) !== false ) { $data = str_ireplace( "HTTP/1.0 200 Connection established\r\n\r\n", '', $data ); } list($resp_headers, $response['data']) = explode( "\r\n\r\n", $data, 2 ); $response['headers'] = _rplg_get_response_headers( $resp_headers, $response ); $response['code'] = curl_getinfo( $c, CURLINFO_HTTP_CODE ); curl_close( $c ); } /*-------------------------------- fopen --------------------------------*/ function _rplg_fopen_urlopen( $url, $postdata, $headers, &$response ) { $params = array(); if ( $postdata ) { $params = array( 'http' => array( 'method' => 'POST', 'header' => implode( "\r\n", array_merge( array( 'Content-Type: application/x-www-form-urlencoded' ), $headers ) ), 'content' => rplg_get_query_string( $postdata ), 'timeout' => RPLG_SOCKET_TIMEOUT, ), ); } else { $params = array( 'http' => array( 'header' => implode( "\r\n", $headers ), ), ); } ini_set( 'user_agent', RPLG_USER_AGENT ); $ctx = stream_context_create( $params ); $fp = fopen( $url, 'rb', false, $ctx ); if ( ! $fp ) { return false; } $response_header_array = explode( ' ', $http_response_header[0], 3 ); $unused = $response_header_array[0]; $response['code'] = $response_header_array[0]; $unused = $response_header_array[2]; $resp_headers = array_slice( $http_response_header, 1 ); foreach ( $resp_headers as $unused => $header ) { $header = explode( ':', $header ); $header[0] = trim( $header[0] ); $header[1] = trim( $header[1] ); $resp_headers[ strtolower( $header[0] ) ] = strtolower( $header[1] ); } $response['data'] = stream_get_contents( $fp ); $response['headers'] = $resp_headers; } /*-------------------------------- fsockpen --------------------------------*/ function _rplg_fsockopen_urlopen( $url, $postdata, $headers, &$response ) { $buf = ''; $req = ''; $length = 0; $postdata_str = rplg_get_query_string( $postdata ); $url_pieces = parse_url( $url ); $host = $url_pieces['host']; if ( ! isset( $url_pieces['port'] ) ) { switch ( $url_pieces['scheme'] ) { case 'http': $url_pieces['port'] = 80; break; case 'https': $url_pieces['port'] = 443; $host = 'ssl://' . $url_pieces['host']; break; } } if ( ! isset( $url_pieces['path'] ) ) { $url_pieces['path'] = '/'; } if ( ( $url_pieces['port'] == 80 && $url_pieces['scheme'] == 'http' ) || ( $url_pieces['port'] == 443 && $url_pieces['scheme'] == 'https' ) ) { $req_host = $url_pieces['host']; } else { $req_host = $url_pieces['host'] . ':' . $url_pieces['port']; } $fp = @fsockopen( $host, $url_pieces['port'], $errno, $errstr, RPLG_SOCKET_TIMEOUT ); if ( ! $fp ) { return false; } $path = $url_pieces['path']; if ( isset( $url_pieces['query'] ) ) { $path .= '?' . $url_pieces['query']; } $req .= ( $postdata_str ? 'POST' : 'GET' ) . ' ' . $path . " HTTP/1.1\r\n"; $req .= 'Host: ' . $req_host . "\r\n"; $req .= rplg_get_http_headers_for_request( $postdata_str, $headers ); if ( $postdata_str ) { $req .= "\r\n\r\n" . $postdata_str; } $req .= "\r\n\r\n"; fwrite( $fp, $req ); while ( ! feof( $fp ) ) { $buf .= fgets( $fp, 4096 ); } list($headers, $response['data']) = explode( "\r\n\r\n", $buf, 2 ); $headers = _rplg_get_response_headers( $headers, $response ); if ( isset( $headers['transfer-encoding'] ) && 'chunked' == strtolower( $headers['transfer-encoding'] ) ) { $chunk_data = $response['data']; $joined_data = ''; while ( true ) { list($chunk_length, $chunk_data) = explode( "\r\n", $chunk_data, 2 ); $chunk_length = hexdec( $chunk_length ); if ( ! $chunk_length || ! strlen( $chunk_data ) ) { break; } $joined_data .= substr( $chunk_data, 0, $chunk_length ); $chunk_data = substr( $chunk_data, $chunk_length + 1 ); $length += $chunk_length; } $response['data'] = $joined_data; } else { $length = $headers['content-length']; } $response['headers'] = $headers; } /*-------------------------------- helpers --------------------------------*/ function rplg_get_query_string( $params ) { $query = ''; if ( $params ) { foreach ( $params as $key => $value ) { $query .= urlencode( $key ) . '=' . urlencode( $value ) . '&'; } } return $query; } function _rplg_get_response_headers( $headers, &$response ) { $headers = explode( "\r\n", $headers ); $header_array = explode( ' ', $headers[0], 3 ); $unused = $header_array[0]; $response['code'] = $header_array[1]; $unused = $header_array[2]; $headers = array_slice( $headers, 1 ); foreach ( $headers as $unused => $header ) { $header = explode( ':', $header ); $header[0] = trim( $header[0] ); $header[1] = trim( $header[1] ); $headers[ strtolower( $header[0] ) ] = $header[1]; } return $headers; } function rplg_get_http_headers_for_request( $content, $headers ) { $req_headers = array(); $req_headers[] = 'User-Agent: ' . RPLG_USER_AGENT; $req_headers[] = 'Connection: close'; if ( $content ) { $req_headers[] = 'Content-Length: ' . strlen( $content ); $req_headers[] = 'Content-Type: application/x-www-form-urlencoded'; } return implode( "\r\n", array_merge( $req_headers, $headers ) ); } function rplg_url_method() { if ( function_exists( 'curl_init' ) ) { return 'curl'; } elseif ( ini_get( 'allow_url_fopen' ) && function_exists( 'stream_get_contents' ) ) { return 'fopen'; } else { return 'fsockopen'; } } } PK [,B} form-presets/pa-cf7-preset4.svgnu [ PK [\ form-presets/pa-cf7-preset6.svgnu [ PK [uS= = form-presets/pa-cf7-preset2.svgnu [ PK [k form-presets/pa-cf7-preset1.svgnu [ PK [mb b form-presets/pa-cf7-preset5.svgnu [ PK [ a form-presets/pa-cf7-preset3.svgnu [ PK [L pa-weather-handler.phpnu [ 60, 'sslverify' => false, ) ); if ( is_wp_error( $weather_data ) || empty( $weather_data ) ) { return array( 'status' => false, 'res' => $weather_data, ); } $weather_data = json_decode( wp_remote_retrieve_body( $weather_data ), true ); $weather_data['city_name'] = $city_data['city_name']; if ( $forecast_tabs ) { $weather_data['tabs_data'] = self::get_available_days( $city_data['tabs_data'] ); } return $weather_data; } /** * Get City Name. * * @access public * @since 2.8.23 * * @return array */ public static function get_city_name() { $req_url = self::$weather_api; $settings = self::$api_settings; $loc_type = $settings['location_type']; if ( 'current' === $loc_type ) { $current_location = self::get_current_location(); $lat = $current_location['lat']; $long = $current_location['long']; $req_url .= '?lat=' . $lat . '&lon=' . $long; } else { if ( 'coords' === $settings['custom_location_type'] ) { $req_url .= '?lat=' . $settings['lat'] . '&lon=' . $settings['long']; } else { // by city name. $req_url .= '?q=' . $settings['city_name']; } } $req_url .= '&lang=' . $settings['lang'] . '&units=' . $settings['unit'] . '&appid=' . $settings['api_key']; $city_data = wp_remote_get( $req_url, array( 'timeout' => 60, 'sslverify' => false, ) ); if ( is_wp_error( $city_data ) || empty( $city_data ) ) { return; } $city_data = json_decode( wp_remote_retrieve_body( $city_data ), true ); return array( 'city_name' => $city_data['city']['name'], 'lat' => $city_data['city']['coord']['lat'], 'long' => $city_data['city']['coord']['lon'], 'tabs_data' => $city_data['list'], ); } /** * Get Current Location. * * @access public * @since 2.8.23 * * @return array */ public static function get_current_location() { if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { $x_forward = sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ); if ( is_array( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { $http_x_headers = explode( ',', filter_var_array( $x_forward ) ); $_SERVER['REMOTE_ADDR'] = $http_x_headers[0]; } else { $_SERVER['REMOTE_ADDR'] = $x_forward; } } $ip_address = isset( $_SERVER['REMOTE_ADDR'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REMOTE_ADDR'] ) ) : ''; $location_data = json_decode( rplg_urlopen( 'http://www.geoplugin.net/json.gp?ip=' . $ip_address )['data'] ); if ( 404 === $location_data->geoplugin_status ) { return false; // localhost. } return array( 'lat' => $location_data->geoplugin_latitude, 'long' => $location_data->geoplugin_longitude, ); } public static function get_available_days( $data ) { $days_forecast = array(); foreach ( $data as $element ) { $date = date( 'Y-m-d', $element['dt'] ); if ( ! isset( $days_forecast[ $date ] ) ) { $days_forecast[ $date ] = array(); } $days_forecast[ $date ][] = $element; } return $days_forecast; } } PK [ pa-tiktok-handler.phpnu [ editor->is_edit_mode(); if ( $is_edit_mode || false === $response ) { $filter_id = $settings['match_id']; $fields = '?fields=id,create_time,cover_image_url,share_url,video_description,duration,height,width,title,embed_html,embed_link,like_count,comment_count,share_count,view_count'; $args = array( 'headers' => array( 'Authorization' => 'Bearer ' . $token, 'Content-Type' => 'application/json', ), ); if ( ! empty( $filter_id ) ) { $filters = explode( ',', $filter_id ); $endpoint = 'video/query/'; $filters = array( 'filters' => array( 'video_ids' => $filters, ), ); $args['body'] = json_encode( $filters ); } else { $endpoint = 'video/list/'; $limit = $settings['no_of_posts']; if ( ! empty( $limit ) ) { $limit = array( 'max_count' => $limit, ); $args['body'] = json_encode( $limit ); } } $url = TIKTOK_API_URL . $endpoint . $fields; sleep( 2 ); $response = wp_remote_post( $url, $args ); if ( is_wp_error( $response ) ) { return; } $response = wp_remote_retrieve_body( $response ); $response = json_decode( $response, true ); if ( 'ok' !== $response['error']['code'] ) { ?>