start_controls_section( 'section_general', [ 'label' => __( 'General', 'wts-eae' ), ] ); $this->add_control( 'embed_type', [ 'label' => __( 'Type', 'wts-eae' ), 'type' => Controls_Manager::SELECT, 'default' => 'handle', 'options' => [ 'handle' => __( 'Handle', 'wts-eae' ), 'hashtag' => __( 'Hashtag', 'wts-eae' ), ], ] ); $this->add_control( 'url_collection', [ 'label' => __( 'Enter URL', 'wts-eae' ), 'type' => Controls_Manager::TEXT, 'placeholder' => __( 'https://twitter.com/webtechhardik', 'wts-eae' ), 'default' => 'https://twitter.com/TwitterDev/timelines/539487832448843776', 'condition' => [ 'embed_type' => 'collection', ], ] ); $this->add_control( 'url_profile', [ 'label' => __( 'Enter URL', 'wts-eae' ), 'type' => Controls_Manager::TEXT, 'placeholder' => __( 'https://twitter.com/TwitterDev', 'wts-eae' ), 'default' => 'https://twitter.com/TwitterDev', 'condition' => [ 'embed_type' => 'profile', ], ] ); $this->add_control( 'url_list', [ 'label' => __( 'Enter URL', 'wts-eae' ), 'type' => Controls_Manager::TEXT, 'placeholder' => __( 'https://twitter.com/webtechhardik', 'wts-eae' ), 'default' => 'https://twitter.com/TwitterDev/lists/national-parks', 'condition' => [ 'embed_type' => 'list', ], ] ); $this->add_control( 'url_moments', [ 'label' => __( 'Enter URL', 'wts-eae' ), 'type' => Controls_Manager::TEXT, 'placeholder' => __( 'https://twitter.com/webtechhardik', 'wts-eae' ), 'default' => 'https://twitter.com/i/moments/625792726546558977', 'condition' => [ 'embed_type' => 'moments', ], ] ); $this->add_control( 'url_likes', [ 'label' => __( 'Enter URL', 'wts-eae' ), 'type' => Controls_Manager::TEXT, 'placeholder' => __( 'https://twitter.com/webtechhardik', 'wts-eae' ), 'default' => 'https://twitter.com/TwitterDev/likes', 'condition' => [ 'embed_type' => 'likes', ], ] ); $this->add_control( 'username', [ 'label' => __( 'Enter UserName', 'wts-eae' ), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'placeholder' => __( '@username', 'wts-eae' ), 'default' => '@TwitterDev', 'condition' => [ 'embed_type' => 'handle', ], ] ); $this->add_control( 'hashtag', [ 'label' => __( 'Enter Hashtag', 'wts-eae' ), 'type' => Controls_Manager::TEXT, 'placeholder' => __( '#hashtag', 'wts-eae' ), 'condition' => [ 'embed_type' => 'hashtag', ], ] ); $this->add_control( 'display_mode_collection', [ 'label' => __( 'Display Mode', 'wts-eae' ), 'type' => Controls_Manager::SELECT, 'default' => 'timeline', 'options' => [ 'timeline' => __( 'Timeline', 'wts-eae' ), 'grid' => __( 'Grid', 'wts-eae' ), ], 'condition' => [ 'embed_type' => 'collection', ], ] ); $this->add_control( 'no_of_tweets', [ 'label' => __( 'Display No of Tweets', 'wts-eae' ), 'type' => Controls_Manager::NUMBER, 'default' => 20, 'min' => '2', 'max' => '50', 'step' => '1', 'condition' => [ 'display_mode_collection' => 'grid', 'embed_type' => 'collection', ], ] ); $this->add_control( 'height_collection_timeline', [ 'label' => __( 'Height', 'wts-eae' ), 'type' => Controls_Manager::SLIDER, 'default' => [ 'size' => 500, ], 'range' => [ 'px' => [ 'min' => 250, 'max' => 1300, 'step' => 10, ], ], 'condition' => [ 'display_mode_collection' => 'timeline', 'embed_type' => 'collection', ], ] ); $this->add_control( 'theme_collection_timeline', [ 'label' => __( 'Theme', 'wts-eae' ), 'type' => Controls_Manager::SELECT, 'default' => 'light', 'options' => [ 'light' => __( 'Light', 'wts-eae' ), 'dark' => __( 'Dark', 'wts-eae' ), ], 'condition' => [ 'display_mode_collection' => 'timeline', 'embed_type' => 'collection', ], ] ); $this->add_control( 'link_color_collection', [ 'label' => __( 'Display Link Color', 'wts-eae' ), 'type' => Controls_Manager::COLOR, 'global' => [ 'default' => Global_Colors::COLOR_PRIMARY, ], 'condition' => [ 'display_mode_collection' => 'timeline', 'embed_type' => 'collection', ], ] ); $this->add_control( 'display_mode_profile', [ 'label' => __( 'Display Mode', 'wts-eae' ), 'type' => Controls_Manager::SELECT, 'default' => 'timeline', 'options' => [ 'timeline' => __( 'Timeline', 'wts-eae' ), 'button' => __( 'Button', 'wts-eae' ), ], 'condition' => [ 'embed_type' => [ 'profile', 'handle' ], ], ] ); $this->add_control( 'height_profile_timeline', [ 'label' => __( 'Height', 'wts-eae' ), 'type' => Controls_Manager::SLIDER, 'default' => [ 'size' => 500, ], 'range' => [ 'px' => [ 'min' => 250, 'max' => 1300, 'step' => 10, ], ], 'condition' => [ 'display_mode_profile' => 'timeline', 'embed_type' => [ 'profile', 'handle' ], ], ] ); $this->add_control( 'theme_profile_timeline', [ 'label' => __( 'Theme', 'wts-eae' ), 'type' => Controls_Manager::SELECT, 'default' => 'light', 'options' => [ 'light' => __( 'Light', 'wts-eae' ), 'dark' => __( 'Dark', 'wts-eae' ), ], 'condition' => [ 'display_mode_profile' => 'timeline', 'embed_type' => [ 'profile', 'handle' ], ], ] ); $this->add_control( 'link_color_profile', [ 'label' => __( 'Display Link Color', 'wts-eae' ), 'type' => Controls_Manager::COLOR, 'global' => [ 'default' => Global_Colors::COLOR_PRIMARY, ], 'condition' => [ 'display_mode_profile' => 'timeline', 'embed_type' => [ 'profile', 'handle' ], ], ] ); $this->add_control( 'button_type', [ 'label' => __( 'Button Type', 'wts-eae' ), 'type' => Controls_Manager::SELECT, 'default' => 'follow-button', 'options' => [ 'follow-button' => __( 'Follow', 'wts-eae' ), 'mention-button' => __( 'Mention', 'wts-eae' ), ], 'condition' => [ 'display_mode_profile' => 'button', 'embed_type' => [ 'profile', 'handle' ], ], ] ); $this->add_control( 'hide_name', [ 'label' => __( 'Hide Name', 'wts-eae' ), 'type' => Controls_Manager::SWITCHER, 'default' => '', 'label_on' => __( 'Show', 'wts-eae' ), 'label_off' => __( 'Hide', 'wts-eae' ), 'return_value' => 'yes', 'condition' => [ 'display_mode_profile' => 'button', 'button_type' => 'follow-button', 'embed_type' => [ 'profile', 'handle' ], ], ] ); $this->add_control( 'show_count', [ 'label' => __( 'Show Count', 'wts-eae' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'label_on' => __( 'Show', 'wts-eae' ), 'label_off' => __( 'Hide', 'wts-eae' ), 'return_value' => 'yes', 'condition' => [ 'embed_type' => [ 'profile', 'handle' ], 'display_mode_profile' => 'button', 'button_type' => 'follow-button', ], ] ); $this->add_control( 'prefill_text', [ 'label' => __( 'Tweet Text', 'wts-eae' ), 'type' => Controls_Manager::TEXTAREA, 'default' => '', 'description' => __( 'Do you want to prefill the Tweet text?', 'wts-eae' ), 'condition' => [ 'embed_type' => [ 'profile', 'handle' ], 'display_mode_profile' => 'button', 'button_type' => 'mention-button', ], ] ); $this->add_control( 'screen_name', [ 'label' => __( 'Screen Name', 'wts-eae' ), 'type' => Controls_Manager::TEXT, 'condition' => [ 'embed_type' => [ 'profile', 'handle' ], 'display_mode_profile' => 'button', 'button_type' => 'mention-button', ], ] ); $this->add_control( 'large_button', [ 'label' => __( 'Large Button', 'wts-eae' ), 'type' => Controls_Manager::SWITCHER, 'default' => '', 'label_on' => __( 'Yes', 'wts-eae' ), 'label_off' => __( 'No', 'wts-eae' ), 'return_value' => 'yes', 'condition' => [ 'embed_type' => [ 'profile', 'handle' ], 'display_mode_profile' => 'button', ], ] ); $this->add_control( 'height_list', [ 'label' => __( 'Height', 'wts-eae' ), 'type' => Controls_Manager::SLIDER, 'default' => [ 'size' => 500, ], 'range' => [ 'px' => [ 'min' => 250, 'max' => 1300, 'step' => 10, ], ], 'condition' => [ 'embed_type' => [ 'list', 'likes' ], ], ] ); $this->add_control( 'theme_list', [ 'label' => __( 'Theme', 'wts-eae' ), 'type' => Controls_Manager::SELECT, 'default' => 'light', 'options' => [ 'light' => __( 'Light', 'wts-eae' ), 'dark' => __( 'Dark', 'wts-eae' ), ], 'condition' => [ 'embed_type' => [ 'list', 'likes' ], ], ] ); $this->add_control( 'link_color_list', [ 'label' => __( 'Display Link Color', 'wts-eae' ), 'type' => Controls_Manager::COLOR, 'global' => [ 'default' => Global_Colors::COLOR_PRIMARY, ], 'condition' => [ 'embed_type' => [ 'list', 'likes' ], ], ] ); $prefill_options = []; if ( is_single() ) { $prefill_options = [ 'post_title' => __( 'Post Title', 'wts-eae' ), 'excerpt' => __( 'Post Excerpt', 'wts-eae' ), ]; } $prefill_options['custom'] = 'Custom'; $this->add_control( 'prefill_text_hashtag', [ 'label' => __( 'Pre Fill Text', 'wts-eae' ), 'type' => Controls_Manager::SELECT, 'default' => 'post_title', 'options' => $prefill_options, 'condition' => [ 'embed_type' => 'hashtag', ], 'description' => __( 'Do you want to prefill the Tweet text?', 'wts-eae' ), ] ); $this->add_control( 'prefill_custom', [ 'label' => __( 'Custom Prefill Text', 'wts-eae' ), 'type' => Controls_Manager::TEXTAREA, 'condition' => [ 'prefill_text_hashtag' => 'custom', 'embed_type' => 'hashtag', ], ] ); $this->add_control( 'hashtag_url', [ 'label' => __( 'Fix Url in Tweet', 'wts-eae' ), 'type' => Controls_Manager::TEXT, 'default' => '', 'description' => __( 'Do you want to set a specific URL in the Tweet?', 'wts-eae' ), 'condition' => [ 'embed_type' => 'hashtag', ], ] ); $this->add_control( 'language', [ 'label' => __( 'Language', 'wts-eae' ), 'type' => Controls_Manager::SELECT, 'options' => $this->languages(), 'default' => '', ] ); $this->add_control( 'hashtag_large_button', [ 'label' => __( 'Large Button', 'wts-eae' ), 'type' => Controls_Manager::SWITCHER, 'default' => '', 'label_on' => __( 'Yes', 'wts-eae' ), 'label_off' => __( 'No', 'wts-eae' ), 'return_value' => 'yes', 'condition' => [ 'embed_type' => 'hashtag', ], ] ); } public function languages() { $languages = [ '' => __( 'Automatic', 'wts-eae' ), 'en' => __( 'English', 'wts-eae' ), 'ar' => __( 'Arabic', 'wts-eae' ), 'bn' => __( 'Bengali', 'wts-eae' ), 'cs' => __( 'Czech', 'wts-eae' ), 'da' => __( 'Danish', 'wts-eae' ), 'de' => __( 'German', 'wts-eae' ), 'el' => __( 'Greek', 'wts-eae' ), 'es' => __( 'Spanish', 'wts-eae' ), 'fa' => __( 'Persian', 'wts-eae' ), 'fi' => __( 'Finnish', 'wts-eae' ), 'fil' => __( 'Filipino', 'wts-eae' ), 'fr' => __( 'French', 'wts-eae' ), 'he' => __( 'Hebrew', 'wts-eae' ), 'hi' => __( 'Hindi', 'wts-eae' ), 'hu' => __( 'Hungarian', 'wts-eae' ), 'id' => __( 'Indonesian', 'wts-eae' ), 'it' => __( 'Italian', 'wts-eae' ), 'ja' => __( 'Japanese', 'wts-eae' ), 'ko' => __( 'Korean', 'wts-eae' ), 'msa' => __( 'Malay', 'wts-eae' ), 'nl' => __( 'Dutch', 'wts-eae' ), 'no' => __( 'Norwegian', 'wts-eae' ), 'pl' => __( 'Polish', 'wts-eae' ), 'pt' => __( 'Portuguese', 'wts-eae' ), 'ro' => __( 'Romania', 'wts-eae' ), 'ru' => __( 'Rus', 'wts-eae' ), 'sv' => __( 'Swedish', 'wts-eae' ), 'th' => __( 'Thai', 'wts-eae' ), 'tr' => __( 'Turkish', 'wts-eae' ), 'uk' => __( 'Ukrainian', 'wts-eae' ), 'ur' => __( 'Urdu', 'wts-eae' ), 'vi' => __( 'Vietnamese', 'wts-eae' ), 'zh-cn' => __( 'Chinese (Simplified)', 'wts-eae' ), 'zh-tw' => __( 'Chinese (Traditional)', 'wts-eae' ), ]; return $languages; } public function render() { // TODO: Implement render() method. $settings = $this->get_settings_for_display(); switch ( $settings['embed_type'] ) { case 'handle': $this->get_handle_html( $settings ); break; case 'hashtag': $this->get_hashtag_html( $settings ); break; } ?> add_render_attribute( 'handle', 'data-lang', $settings['language'] ); if ( $settings['large_button'] === 'yes' ) { $this->add_render_attribute( 'handle', 'data-size', 'large' ); } if ( $settings['display_mode_profile'] === 'timeline' ) { $url = esc_url('https://www.twitter.com/' . $settings['username']); $this->add_render_attribute( 'handle', 'href', $url); $this->add_render_attribute( 'handle', 'class', 'twitter-' . esc_attr($settings['display_mode_profile']) ); $this->add_render_attribute( 'handle', 'data-partner', 'twitter-deck' ); $this->add_render_attribute( 'handle', 'data-height', ($settings['height_profile_timeline']['size']) ); $this->add_render_attribute( 'handle', 'data-theme', esc_attr($settings['theme_profile_timeline']) ); $this->add_render_attribute( 'handle', 'data-link-color', esc_attr($settings['link_color_profile']) ); } if ( $settings['display_mode_profile'] === 'button' && $settings['button_type'] === 'follow-button' ) { $this->add_render_attribute( 'handle', 'class', esc_attr('twitter-' . $settings['button_type']) ); $button_url = esc_url('https://www.twitter.com/' . $settings['username']); $this->add_render_attribute( 'handle', 'href', $button_url ); if ( $settings['hide_name'] === 'yes' ) { $this->add_render_attribute( 'handle', 'data-show-screen-name', 'false' ); } if ( $settings['show_count'] === '' ) { $this->add_render_attribute( 'handle', 'data-show-count', 'false' ); } } if ( $settings['display_mode_profile'] === 'button' && $settings['button_type'] === 'mention-button' ) { $this->add_render_attribute( 'handle', 'class', esc_attr('twitter-' . $settings['button_type']) ); $this->add_render_attribute( 'handle', 'data-text', esc_attr($settings['prefill_text']) ); $mention_button_url = esc_url('https://www.twitter.com/intent/tweet?screen_name=' . $settings['screen_name']); $this->add_render_attribute( 'handle', 'href', $mention_button_url ); } ?> get_render_attribute_string( 'handle' ); ?> > Handle add_render_attribute( 'hashtag', 'class', 'twitter-hashtag-button' ); $hastag_url = esc_url('https://twitter.com/intent/tweet?button_hashtag=' . $settings['hashtag']); $this->add_render_attribute( 'hashtag', 'href', $hastag_url ); $this->add_render_attribute( 'hashtag', 'data-lang', esc_attr($settings['language']) ); if ( $settings['prefill_text_hashtag'] === 'post_title' ) { $this->add_render_attribute( 'hashtag', 'data-text', $this->current_post_title() ); } if ( $settings['prefill_text_hashtag'] === 'excerpt' ) { $this->add_render_attribute( 'hashtag', 'data-text', $this->current_post_excerpt() ); } if ( $settings['prefill_text_hashtag'] === 'custom' ) { $this->add_render_attribute( 'hashtag', 'data-text', esc_attr($settings['prefill_custom']) ); } if ( $settings['hashtag_large_button'] === 'yes' ) { $this->add_render_attribute( 'hashtag', 'data-size', 'large' ); } $this->add_render_attribute( 'hashtag', 'data-url', esc_url($settings['hashtag_url']) ); ?> get_render_attribute_string( 'hashtag' ); ?> >Tweet post_title; return $title; } public function current_post_excerpt() { global $post; if ( has_excerpt( $post->ID ) ) { return get_the_excerpt( $post->ID ); } } }