Home Forums WoodMart support forum Instagram has returned invalid data.

Instagram has returned invalid data.

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #50910

    emrefaltug
    Participant

    I have added this shortcode to functions.php but still same.

    }
    function woodmart_scrape_instagram( $username, $slice = 9 ) {
    $username = strtolower( $username );
    $by_hashtag = ( substr( $username, 0, 1 ) == ‘#’ );
    $transient_name = ‘instagram-media-new1-‘ . sanitize_title_with_dashes( $username );
    $instagram = get_transient( $transient_name );

    if ( false === $instagram ) {

    $request_param = ( $by_hashtag ) ? ‘explore/tags/’ . substr( $username, 1 ) : trim( $username );
    $remote = wp_remote_get( ‘https://instagram.com/’. $request_param );

    if ( is_wp_error( $remote ) ) {
    return new WP_Error( ‘site_down’, esc_html__( ‘Unable to communicate with Instagram.’, ‘woodmart’ ) );
    }

    if ( 200 != wp_remote_retrieve_response_code( $remote ) ) {
    return new WP_Error( ‘invalid_response’, esc_html__( ‘Instagram did not return a 200.’, ‘woodmart’ ) );
    }

    $shards = explode( ‘window._sharedData = ‘, $remote[‘body’] );
    $insta_json = explode( ‘;</script>’, $shards[1] );
    $insta_array = json_decode( $insta_json[0], TRUE );

    if ( ! $insta_array ){
    return new WP_Error( ‘bad_json’, esc_html__( ‘Instagram has returned invalid data.’, ‘woodmart’ ) );
    }

    if ( isset( $insta_array[‘entry_data’][‘ProfilePage’][0][‘graphql’][‘user’][‘edge_owner_to_timeline_media’][‘edges’] ) ) {
    $images = $insta_array[‘entry_data’][‘ProfilePage’][0][‘graphql’][‘user’][‘edge_owner_to_timeline_media’][‘edges’];
    } elseif( $by_hashtag && isset( $insta_array[‘entry_data’][‘TagPage’][0][‘graphql’][‘hashtag’][‘edge_hashtag_to_media’][‘edges’] ) ) {
    $images = $insta_array[‘entry_data’][‘TagPage’][0][‘graphql’][‘hashtag’][‘edge_hashtag_to_media’][‘edges’];
    } else {
    return new WP_Error( ‘bad_json_2’, esc_html__( ‘Instagram has returned invalid data.’, ‘woodmart’ ) );
    }

    if ( ! is_array( $images ) ) {
    return new WP_Error( ‘bad_array’, esc_html__( ‘Instagram has returned invalid data.’, ‘woodmart’ ) );
    }

    $instagram = array();

    foreach ( $images as $image ) {
    $image = $image[‘node’];
    $caption = esc_html__( ‘Instagram Image’, ‘woodmart’ );
    if ( ! empty( $image[‘edge_media_to_caption’][‘edges’][0][‘node’][‘text’] ) ) $caption = $image[‘edge_media_to_caption’][‘edges’][0][‘node’][‘text’];

    $image[‘thumbnail_src’] = preg_replace( “/^https:/i”, “”, $image[‘thumbnail_src’] );
    $image[‘thumbnail’] = preg_replace( “/^https:/i”, “”, $image[‘thumbnail_resources’][0][‘src’] );
    $image[‘medium’] = preg_replace( “/^https:/i”, “”, $image[‘thumbnail_resources’][2][‘src’] );
    $image[‘large’] = $image[‘thumbnail_src’];

    $type = ( $image[‘is_video’] ) ? ‘video’ : ‘image’;

    $instagram[] = array(
    ‘description’ => $caption,
    ‘link’ => ‘//instagram.com/p/’ . $image[‘shortcode’],
    ‘comments’ => $image[‘edge_media_to_comment’][‘count’],
    ‘likes’ => $image[‘edge_liked_by’][‘count’],
    ‘thumbnail’ => $image[‘thumbnail’],
    ‘medium’ => $image[‘medium’],
    ‘large’ => $image[‘large’],
    ‘type’ => $type
    );
    }

    // do not set an empty transient – should help catch private or empty accounts
    if ( ! empty( $instagram ) ) {
    $instagram = woodmart_compress( maybe_serialize( $instagram ) );
    set_transient( $transient_name, $instagram, apply_filters( ‘null_instagram_cache_time’, HOUR_IN_SECONDS * 2 ) );
    }
    }
    if ( ! empty( $instagram ) ) {
    $instagram = maybe_unserialize( woodmart_decompress( $instagram ) );
    return array_slice( $instagram, 0, $slice );
    } else {
    return new WP_Error( ‘no_images’, esc_html__( ‘Instagram did not return any images.’, ‘woodmart’ ) );
    }

    #50940

    Hello,

    This issue has been fixed in our recent version. Please update your theme.

    Best Regards

    #51226

    emrefaltug
    Participant

    thank you. And also I’m using toys demo, and footer looks seperated with the waves. How can I make as you done in theme again? How are the settings?

    Attachments:
    You must be logged in to view attached files.
    #51238

    Hello,

    Here are the settings for the default Section divider: http://prntscr.com/j1qb24

    If you have any questions feel free to contact us.

    Best Regards

    #51280

    emrefaltug
    Participant

    thank you. And also I couldn’t find in product, zoom on hover option. I didn’t know how I closed it but it doesn’t work now

    #51288

    Hello,

    Navigate to Theme Settings > Shop > Products & categories styles > Hover on product

    By default in Toy demo “Summary on hover” is set, at the same time, you can choose any you like.

    Best Regards

Viewing 6 posts - 1 through 6 (of 6 total)