Ejemplo n.º 1
0
    public static function get_follow_counts($counts_num = 0, $network = '', $index = '', $display = true, $is_ajax_request = true)
    {
        if ($is_ajax_request) {
            wp_verify_nonce($_POST['get_follow_counts_nonce'], 'get_follow_counts');
            $count_data_json = str_replace('\\', '', $_POST['follow_count_array']);
            $count_data_array = json_decode($count_data_json, true);
            $network = sanitize_text_field($count_data_array['network']);
            $counts_num = (int) $count_data_array['min_count'];
            $index = (int) $count_data_array['index'];
        }
        $monarch_options = ET_Monarch::get_options_array();
        $networks = $monarch_options['follow_networks_networks_sorting'];
        $follow_counts_output = '';
        if ('like' == $network) {
            $follow_counts = ET_Monarch::get_likes_count();
        } else {
            $update_frequency = (int) $monarch_options['general_main_update_freq'];
            $api = $monarch_options['follow_networks_use_api'];
            if (!in_array($network, ET_Monarch::get_follow_networks_with_api_support())) {
                $api = false;
            }
            if (false == $api) {
                $follow_counts = '' != ($manual_counts = $networks['count'][$index]) ? ET_Monarch::get_full_number($manual_counts) : 0;
            } else {
                if (0 == $update_frequency) {
                    $follow_counts = false != ($follow_counts_received = ET_Monarch::get_api_follow_counts($network, $index)) ? $follow_counts_received : 0;
                } else {
                    $follow_counts = 'none' == get_transient('et_social_follow_counts_' . $network) ? 0 : (int) get_transient('et_social_follow_counts_' . $network);
                    if (false == $follow_counts) {
                        $follow_counts = false != ($follow_counts_received = ET_Monarch::get_api_follow_counts($network, $index)) ? (int) $follow_counts_received : 0;
                        $transient_value = 0 == $follow_counts ? 'none' : (int) $follow_counts;
                        set_transient('et_social_follow_counts_' . $network, $transient_value, 60 * 60 * $update_frequency);
                    }
                }
            }
        }
        if ($follow_counts >= $counts_num) {
            if ('like' == $network) {
                $follow_text = 1 == $follow_counts ? __('Like', 'Monarch') : __('Likes', 'Monarch');
            } else {
                $follow_text = 1 == ET_Monarch::get_full_number($follow_counts) ? __('Follower', 'Monarch') : __('Followers', 'Monarch');
            }
            $follow_counts_output = false == $display ? ET_Monarch::get_full_number($follow_counts) : sprintf('<div class="et_social_count">
						<span>%1$s</span>
						<span class="et_social_count_label">%2$s</span>
					</div>', esc_html(ET_Monarch::get_compact_number($follow_counts)), esc_html($follow_text));
        }
        if (!$is_ajax_request) {
            return $follow_counts_output;
        } else {
            die($follow_counts_output);
        }
    }