_title_join' ), 'button' => Better_Social_Counter::get_option( 'instagram_button' ), 'name' => Better_Social_Counter::get_option( 'instagram_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving data for Instagram * * @param string $id * * @return array|bool */ private function get_instagram_short_data( $id = 'instagram' ) { if ( ! $this->is_min_active( $id ) ) { return FALSE; } return array( 'link' => "https://instagram.com/" . Better_Social_Counter::get_option( 'instagram_username' ), 'title' => Better_Social_Counter::get_option( 'instagram_title' ), 'title_join' => Better_Social_Counter::get_option( 'instagram_title_join' ), 'name' => Better_Social_Counter::get_option( 'instagram_name' ), ); } /** * Used for retrieving data for Forrst * * @param string $id * * @return bool|mixed */ private function get_forrst_full_data( $id = 'forrst' ) { if ( ! $this->is_active( $id ) ) { return FALSE; } if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } $forrst_username = Better_Social_Counter::get_option( 'forrst_username' ); try { $data = $this->remote_get( "http://forrst.com/api/v2/users/info?username=" . $forrst_username ); $result = (int) $data['resp']['typecast_followers']; } catch( Exception $e ) { $result = 0; } if ( ! isset( $result ) ) { $result = 0; } // final result $final_result = array( 'link' => "https://zurb.com/forrst/people/" . $forrst_username, 'count' => $this->format_number( $result ), 'title' => Better_Social_Counter::get_option( 'forrst_title' ), 'title_join' => Better_Social_Counter::get_option( 'forrst_title_join' ), 'button' => Better_Social_Counter::get_option( 'forrst_button' ), 'name' => Better_Social_Counter::get_option( 'forrst_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving data for Forrst * * @param string $id * * @return array|bool */ private function get_forrst_short_data( $id = 'forrst' ) { if ( ! $this->is_min_active( $id ) ) { return FALSE; } return array( 'link' => "https://zurb.com/forrst/people/" . Better_Social_Counter::get_option( 'forrst_username' ), 'title' => Better_Social_Counter::get_option( 'forrst_title' ), 'title_join' => Better_Social_Counter::get_option( 'forrst_title_join' ), 'name' => Better_Social_Counter::get_option( 'forrst_name' ), ); } /** * Used for retrieving data for Mailchimp * * @param string $id * * @return bool|mixed */ private function get_mailchimp_full_data( $id = 'mailchimp' ) { if ( ! $this->is_active( $id ) ) { return FALSE; } if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } try { // Mail chimp API wrapper require_once Better_Social_Counter()->dir_path() . 'includes/libs/mailchimp/class-mcapi.php'; $mc_list_id = Better_Social_Counter::get_option( 'mailchimp_list_id' ); $mc_api_key = Better_Social_Counter::get_option( 'mailchimp_api_key' ); $mc_api = new MCAPI( $mc_api_key ); $lists = $mc_api->lists(); $result = 0; if ( isset( $lists['data'] ) ) { foreach ( (array) $lists['data'] as $list ) { if ( $list['id'] == $mc_list_id ) { $result = $list['stats']['member_count']; break; } } } } catch( Exception $e ) { $result = 0; } if ( ! isset( $result ) ) { $result = 0; } // final result $final_result = array( 'link' => Better_Social_Counter::get_option( 'mailchimp_list_url' ), 'count' => $this->format_number( $result ), 'title' => Better_Social_Counter::get_option( 'mailchimp_title' ), 'title_join' => Better_Social_Counter::get_option( 'mailchimp_title_join' ), 'button' => Better_Social_Counter::get_option( 'mailchimp_button' ), 'name' => Better_Social_Counter::get_option( 'mailchimp_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving data for Mailchimp * * @param string $id * * @return array|bool */ private function get_mailchimp_short_data( $id = 'mailchimp' ) { if ( ! $this->is_min_active( $id ) ) { return FALSE; } return array( 'link' => Better_Social_Counter::get_option( 'mailchimp_list_url' ), 'title' => Better_Social_Counter::get_option( 'mailchimp_title' ), 'title_join' => Better_Social_Counter::get_option( 'mailchimp_title_join' ), 'name' => Better_Social_Counter::get_option( 'mailchimp_name' ), ); } /** * Used for retrieving data for Envato * * @param string $id * * @return bool|mixed */ private function get_envato_full_data( $id = 'envato' ) { if ( ! $this->is_active( $id ) ) { return FALSE; } if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } $envato_username = Better_Social_Counter()->get_option( 'envato_username' ); $envato_marketplace = Better_Social_Counter()->get_option( 'envato_marketplace' ); if ( empty( $envato_marketplace ) ) { $envato_marketplace = 'themeforest'; } try { $data = $this->remote_get( "http://marketplace.envato.com/api/edge/user:$envato_username.json" ); if ( isset( $data['user']['followers'] ) ) { $result = (int) $data['user']['followers']; } } catch( Exception $e ) { $result = 0; } if ( ! isset( $result ) ) { $result = 0; } // final result $final_result = array( 'link' => 'https://' . $envato_marketplace . '.net/user/' . $envato_username . '?ref=' . $envato_username, 'count' => $this->format_number( $result ), 'title' => Better_Social_Counter::get_option( 'envato_title' ), 'title_join' => Better_Social_Counter::get_option( 'envato_title_join' ), 'button' => Better_Social_Counter::get_option( 'envato_button' ), 'name' => Better_Social_Counter::get_option( 'envato_' . $envato_marketplace . '_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving data for Envato * * @param string $id * * @return array|bool */ private function get_envato_short_data( $id = 'envato' ) { if ( ! $this->is_min_active( $id ) ) { return FALSE; } $envato_username = Better_Social_Counter()->get_option( 'envato_username' ); $envato_marketplace = Better_Social_Counter()->get_option( 'envato_marketplace' ); if ( empty( $envato_marketplace ) ) { $envato_marketplace = 'themeforest'; } $final_result = array( 'link' => 'https://' . $envato_marketplace . '.net/user/' . $envato_username . '?ref=' . $envato_username, 'title' => Better_Social_Counter::get_option( 'envato_title' ), 'title_join' => Better_Social_Counter::get_option( 'envato_title_join' ), 'name' => Better_Social_Counter::get_option( 'envato_' . $envato_marketplace . '_name' ), ); return $final_result; } /** * Used for retrieving posts data * * @param string $id * * @return bool|mixed */ private function get_posts_full_data( $id = 'posts' ) { if ( ! $this->is_active( $id ) ) { return FALSE; } if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } try { $count_posts = wp_count_posts(); $result = $count_posts->publish; } catch( Exception $e ) { $result = 0; } if ( ! isset( $result ) ) { $result = 0; } // final result $final_result = array( 'count' => $this->format_number( $result ), 'title' => Better_Social_Counter::get_option( 'posts_title' ), 'title_join' => Better_Social_Counter::get_option( 'posts_title_join' ), 'name' => Better_Social_Counter::get_option( 'posts_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving posts data * * @param string $id * * @return array|bool */ private function get_posts_short_data( $id = 'posts' ) { if ( ! $this->is_min_active( $id ) ) { return FALSE; } return array( 'title' => Better_Social_Counter::get_option( 'posts_title' ), 'title_join' => Better_Social_Counter::get_option( 'posts_title_join' ), 'name' => Better_Social_Counter::get_option( 'posts_name' ), ); } /** * Used for retrieving comments data * * @param string $id * * @return bool|mixed */ private function get_comments_full_data( $id = 'comments' ) { if ( ! $this->is_active( $id ) ) { return FALSE; } if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } try { $comments_count = wp_count_comments(); $result = $comments_count->approved; } catch( Exception $e ) { $result = 0; } if ( ! isset( $result ) ) { $result = 0; } // final result $final_result = array( 'count' => $this->format_number( $result ), 'title' => Better_Social_Counter::get_option( 'comments_title' ), 'title_join' => Better_Social_Counter::get_option( 'comments_title_join' ), 'name' => Better_Social_Counter::get_option( 'comments_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving comments data * * @param string $id * * @return array|bool */ private function get_comments_short_data( $id = 'comments' ) { if ( ! $this->is_min_active( $id ) ) { return FALSE; } return array( 'title' => Better_Social_Counter::get_option( 'comments_title' ), 'title_join' => Better_Social_Counter::get_option( 'comments_title_join' ), 'name' => Better_Social_Counter::get_option( 'comments_name' ), ); } /** * Used for retrieving members data * * @param string $id * * @return bool|mixed */ private function get_members_full_data( $id = 'members' ) { if ( ! $this->is_active( $id ) ) { return FALSE; } if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } try { $members_count = count_users(); $result = $members_count['total_users']; } catch( Exception $e ) { $result = 0; } if ( ! isset( $result ) ) { $result = 0; } // final result $final_result = array( 'count' => $this->format_number( $result ), 'title' => Better_Social_Counter::get_option( 'members_title' ), 'title_join' => Better_Social_Counter::get_option( 'members_title_join' ), 'name' => Better_Social_Counter::get_option( 'members_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving members data * * @param string $id * * @return array|bool */ private function get_members_short_data( $id = 'members' ) { if ( ! $this->is_min_active( $id ) ) { return FALSE; } return array( 'title' => Better_Social_Counter::get_option( 'members_title' ), 'title_join' => Better_Social_Counter::get_option( 'members_title_join' ), 'name' => Better_Social_Counter::get_option( 'members_name' ), ); } /** * Used for retrieving RSS data * * @param string $id * * @return bool|mixed */ private function get_rss_full_data( $id = 'rss' ) { if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } $type = Better_Social_Counter::get_option( 'rss_type' ); $link = ''; if ( $type === 'custom_link' ) { $link = Better_Social_Counter::get_option( 'rss_type_custom' ); } elseif ( $type === 'category' ) { if ( $cat = Better_Social_Counter::get_option( 'rss_type_category' ) ) { $link = get_category_feed_link( $cat ); } } if ( empty( $link ) ) { $link = get_bloginfo( 'rss_url' ); } // final result $final_result = array( 'link' => $link, 'count' => 'RSS', 'title' => Better_Social_Counter::get_option( 'rss_title' ), 'title_join' => Better_Social_Counter::get_option( 'rss_title_join' ), 'button' => Better_Social_Counter::get_option( 'rss_button' ), 'name' => Better_Social_Counter::get_option( 'rss_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving RSS data * * @param string $id * * @return array|bool */ private function get_rss_short_data( $id = 'rss' ) { return $this->get_rss_full_data( $id ); } /** * Used for retrieving Telegram data * * @param string $id * * @return bool|mixed */ private function get_telegram_full_data( $id = 'telegram' ) { if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } $link = Better_Social_Counter::get_option( 'telegram_link' ); // final result $final_result = array( 'link' => $link, 'count' => '', 'title' => Better_Social_Counter::get_option( 'telegram_title' ), 'title_join' => Better_Social_Counter::get_option( 'telegram_title_join' ), 'button' => Better_Social_Counter::get_option( 'telegram_button' ), 'name' => Better_Social_Counter::get_option( 'telegram_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving Telegram data * * @param string $id * * @return array|bool */ private function get_telegram_short_data( $id = 'telegram' ) { return $this->get_telegram_full_data( $id ); } /** * Used for retrieving linkedin data * * @param string $id * * @return bool|mixed */ private function get_linkedin_full_data( $id = 'linkedin' ) { if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } $link = Better_Social_Counter::get_option( 'linkedin_link' ); if ( Better_Social_Counter::get_option( 'linkedin_title' ) ) { $count = Better_Social_Counter::get_option( 'linkedin_title' ); $title = Better_Social_Counter::get_option( 'linkedin_name' ); $button = Better_Social_Counter::get_option( 'linkedin_title_join' ); } else { $count = ''; $title = Better_Social_Counter::get_option( 'linkedin_name' ); $button = Better_Social_Counter::get_option( 'linkedin_title_join' ); } // final result $final_result = array( 'link' => $link, 'count' => $count, 'title' => $title, 'title_join' => Better_Social_Counter::get_option( 'linkedin_title_join' ), 'button' => $button, 'name' => Better_Social_Counter::get_option( 'linkedin_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving linkedin data * * @param string $id * * @return array|bool */ private function get_linkedin_short_data( $id = 'linkedin' ) { return $this->get_linkedin_full_data( $id ); } /** * Used for retrieving tumblr data * * @param string $id * * @return bool|mixed */ private function get_tumblr_full_data( $id = 'tumblr' ) { if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } $link = Better_Social_Counter::get_option( 'tumblr_link' ); // final result $final_result = array( 'link' => $link, 'count' => '', 'title' => Better_Social_Counter::get_option( 'tumblr_title' ), 'title_join' => Better_Social_Counter::get_option( 'tumblr_title_join' ), 'button' => Better_Social_Counter::get_option( 'tumblr_button' ), 'name' => Better_Social_Counter::get_option( 'tumblr_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving tumblr data * * @param string $id * * @return array|bool */ private function get_tumblr_short_data( $id = 'tumblr' ) { return $this->get_tumblr_full_data( $id ); } /** * Used for retrieving ok.ru data * * @param string $id * * @return bool|mixed */ private function get_ok_ru_full_data( $id = 'ok_ru' ) { if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } $link = Better_Social_Counter::get_option( 'ok_ru_link' ); // final result $final_result = array( 'link' => $link, 'count' => '', 'title' => Better_Social_Counter::get_option( 'ok_ru_title' ), 'title_join' => Better_Social_Counter::get_option( 'ok_ru_title_join' ), 'button' => Better_Social_Counter::get_option( 'ok_ru_button' ), 'name' => Better_Social_Counter::get_option( 'ok_ru_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving ok.ru data * * @param string $id * * @return array|bool */ private function get_ok_ru_short_data( $id = 'ok_ru' ) { return $this->get_ok_ru_full_data( $id ); } /** * Used for retrieving Line data * * @param string $id * * @return bool|mixed */ private function get_line_full_data( $id = 'line' ) { if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } $link = Better_Social_Counter::get_option( 'line_link' ); // final result $final_result = array( 'link' => $link, 'count' => '', 'title' => Better_Social_Counter::get_option( 'line_title' ), 'title_join' => Better_Social_Counter::get_option( 'line_title_join' ), 'button' => Better_Social_Counter::get_option( 'line_button' ), 'name' => Better_Social_Counter::get_option( 'line_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving Line data * * @param string $id * * @return array|bool */ private function get_line_short_data( $id = 'line' ) { return $this->get_line_full_data( $id ); } /** * Used for retrieving Viber data * * @param string $id * * @return bool|mixed */ private function get_viber_full_data( $id = 'viber' ) { if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } $link = Better_Social_Counter::get_option( 'viber_link' ); // final result $final_result = array( 'link' => $link, 'count' => '', 'title' => Better_Social_Counter::get_option( 'viber_title' ), 'title_join' => Better_Social_Counter::get_option( 'viber_title_join' ), 'button' => Better_Social_Counter::get_option( 'viber_button' ), 'name' => Better_Social_Counter::get_option( 'viber_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving Viber data * * @param string $id * * @return array|bool */ private function get_viber_short_data( $id = 'viber' ) { return $this->get_viber_full_data( $id ); } /** * Used for retrieving snapchat data * * @param string $id * * @return bool|mixed */ private function get_snapchat_full_data( $id = 'snapchat' ) { if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } $link = Better_Social_Counter::get_option( 'snapchat_link' ); if ( Better_Social_Counter::get_option( 'snapchat_title' ) ) { $count = Better_Social_Counter::get_option( 'snapchat_title' ); $title = Better_Social_Counter::get_option( 'snapchat_name' ); $button = Better_Social_Counter::get_option( 'snapchat_title_join' ); } else { $count = ''; $title = Better_Social_Counter::get_option( 'snapchat_name' ); $button = Better_Social_Counter::get_option( 'snapchat_title_join' ); } // final result $final_result = array( 'link' => $link, 'count' => $count, 'title' => $title, 'title_join' => Better_Social_Counter::get_option( 'snapchat_title_join' ), 'button' => $button, 'name' => Better_Social_Counter::get_option( 'snapchat_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving snapchat data * * @param string $id * * @return array|bool */ private function get_snapchat_short_data( $id = 'snapchat' ) { return $this->get_snapchat_full_data( $id ); } /** * Used for retrieving BlackBerry data * * @param string $id * * @return bool|mixed */ private function get_bbm_full_data( $id = 'bbm' ) { if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } $link = Better_Social_Counter::get_option( 'bbm_link' ); // final result $final_result = array( 'link' => $link, 'count' => '', 'title' => Better_Social_Counter::get_option( 'bbm_title' ), 'title_join' => Better_Social_Counter::get_option( 'bbm_title_join' ), 'button' => Better_Social_Counter::get_option( 'bbm_button' ), 'name' => Better_Social_Counter::get_option( 'bbm_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving BlackBerry data * * @param string $id * * @return array|bool */ private function get_bbm_short_data( $id = 'bbm' ) { return $this->get_bbm_full_data( $id ); } /** * Used for retrieving AppStore data * * @param string $id * * @return bool|mixed */ private function get_appstore_full_data( $id = 'appstore' ) { if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } $link = Better_Social_Counter::get_option( 'appstore_link' ); // final result $final_result = array( 'link' => $link, 'count' => '', 'title' => Better_Social_Counter::get_option( 'appstore_title' ), 'title_join' => Better_Social_Counter::get_option( 'appstore_title_join' ), 'button' => Better_Social_Counter::get_option( 'appstore_button' ), 'name' => Better_Social_Counter::get_option( 'appstore_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving AppStore data * * @param string $id * * @return array|bool */ private function get_appstore_short_data( $id = 'appstore' ) { return $this->get_appstore_full_data( $id ); } /** * Used for retrieving Google Play data * * @param string $id * * @return bool|mixed */ private function get_android_full_data( $id = 'android' ) { if ( ( $cached = $this->get_transient( $id ) ) !== FALSE ) { return $cached; } $link = Better_Social_Counter::get_option( 'android_link' ); // final result $final_result = array( 'link' => $link, 'count' => '', 'title' => Better_Social_Counter::get_option( 'android_title' ), 'title_join' => Better_Social_Counter::get_option( 'android_title_join' ), 'button' => Better_Social_Counter::get_option( 'android_button' ), 'name' => Better_Social_Counter::get_option( 'android_name' ), ); $this->set_transient( $id, $final_result ); return $final_result; } /** * Used for retrieving Google Play data * * @param string $id * * @return array|bool */ private function get_android_short_data( $id = 'android' ) { return $this->get_android_full_data( $id ); } }