'num', 'default' => $defaults['num'], 'section' => 'sbspf_layout', 'callback' => 'text', 'min' => 1, 'max' => 50, 'size' => 4, 'title' => __( 'Number of Videos', 'feeds-for-youtube' ), 'additional' => '' . __( 'Number of videos to show initially.', 'feeds-for-youtube' ) . '', 'shortcode' => array( 'key' => 'num', 'example' => 5, 'description' => __( 'The number of videos in the feed', 'feeds-for-youtube' ), 'display_section' => 'layout' ) ); $this->add_settings_field( $args ); $select_options = array( array( 'label' => 'px', 'value' => 'px' ), array( 'label' => '%', 'value' => '%' ) ); $args = array( 'name' => 'itemspacing', 'default' => $defaults['itemspacing'], 'section' => 'sbspf_layout', 'callback' => 'text', 'min' => 0, 'size' => 4, 'title' => __( 'Spacing between videos', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'itemspacing', 'example' => '5px', 'description' => __( 'The spacing/padding around the videos in the feed. Any number with a unit like "px" or "em".', 'feeds-for-youtube' ), 'display_section' => 'layout' ), 'select_name' => 'itemspacingunit', 'select_options' => $select_options, ); $this->add_settings_field( $args ); $args = array( 'title' => __( 'Info Display', 'feeds-for-youtube' ), 'id' => 'sbspf_info_display', 'tab' => 'customize', 'save_after' => 'true' ); $this->add_settings_section( $args ); $select_options = array( array( 'label' => __( 'Below video thumbnail', 'feeds-for-youtube' ), 'value' => 'below' ), array( 'label' => __( 'Next to video thumbnail', 'feeds-for-youtube' ), 'value' => 'side' ) ); $args = array( 'name' => 'infoposition', 'default' => 'below', 'section' => 'sbspf_info_display', 'callback' => 'select', 'title' => __( 'Position', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'infoposition', 'example' => 'side', 'description' => __( 'Where the information (title, description, stats) will display. eg.', 'feeds-for-youtube' ) . ' below, side, none', 'display_section' => 'customize' ), 'options' => $select_options, ); $this->add_settings_field( $args ); $api_key_not_entered = empty( $this->settings['api_key'] ) ? ' sby_api_key_needed' : false; $include_options = array( array( 'label' => __( 'Play Icon', 'feeds-for-youtube' ), 'value' => 'icon', 'class' => false ), array( 'label' => __( 'Title', 'feeds-for-youtube' ), 'value' => 'title', 'class' => false ), array( 'label' => __( 'User Name', 'feeds-for-youtube' ), 'value' => 'user', 'class' => false ), array( 'label' => __( 'Views', 'feeds-for-youtube' ), 'value' => 'views', 'class' => $api_key_not_entered ), array( 'label' => __( 'Date', 'feeds-for-youtube' ), 'value' => 'date', 'class' => false ), array( 'label' => __( 'Live Stream Countdown (when applies)', 'feeds-for-youtube' ), 'value' => 'countdown', 'class' => false ), array( 'label' => __( 'Stats (like and comment counts)', 'feeds-for-youtube' ), 'value' => 'stats', 'class' => $api_key_not_entered ), array( 'label' => __( 'Description', 'feeds-for-youtube' ), 'value' => 'description', 'class' => false ), ); $args = array( 'name' => 'include', 'default' => $defaults['include'], 'section' => 'sbspf_info_display', 'callback' => 'multi_checkbox', 'title' => __( 'Show/Hide', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'include', 'example' => '"title, description, date"', 'description' => __( 'Comma separated list of what video information (title, description, stats) will display in the feed. eg.', 'feeds-for-youtube' ) . ' title, description ', 'display_section' => 'customize' ), 'select_options' => $include_options, ); $this->add_settings_field( $args ); $include_options = array( array( 'label' => __( 'Title', 'feeds-for-youtube' ), 'value' => 'title', 'class' => false ), array( 'label' => __( 'User Name', 'feeds-for-youtube' ), 'value' => 'user', 'class' => false ), array( 'label' => __( 'Views', 'feeds-for-youtube' ), 'value' => 'views', 'class' => $api_key_not_entered ), array( 'label' => __( 'Date', 'feeds-for-youtube' ), 'value' => 'date', 'class' => false ), array( 'label' => __( 'Live Stream Countdown (when applies)', 'feeds-for-youtube' ), 'value' => 'countdown', 'class' => false ), array( 'label' => __( 'Description', 'feeds-for-youtube' ), 'value' => 'description', 'class' => false ), array( 'label' => __( 'Stats (like and comment counts)', 'feeds-for-youtube' ), 'value' => 'stats', 'class' => $api_key_not_entered ), ); $args = array( 'name' => 'hoverinclude', 'default' => $defaults['hoverinclude'], 'section' => 'sbspf_info_display', 'callback' => 'multi_checkbox', 'title' => __( 'Hover Show/Hide', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'hoverinclude', 'example' => '"title, stats, date"', 'description' => __( 'Comma separated list of what video information (title, description, stats) will display when hovering over the video thumbnail. eg.', 'feeds-for-youtube' ) . ' title, stats ', 'display_section' => 'customize' ), 'select_options' => $include_options, ); $this->add_settings_field( $args ); $args = array( 'name' => 'descriptionlength', 'default' => $defaults['descriptionlength'], 'section' => 'sbspf_info_display', 'callback' => 'text', 'min' => 5, 'max' => 1000, 'size' => 4, 'title' => __( 'Description Character Length', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'descriptionlength', 'example' => 300, 'description' => __( 'Maximum length of the description', 'feeds-for-youtube' ), 'display_section' => 'customize' ) ); $this->add_settings_field( $args ); $select_options = array( array( 'label' => __( 'inherit', 'feeds-for-youtube' ), 'value' => 'inherit' ), array( 'label' => __( '20px', 'feeds-for-youtube' ), 'value' => '20px' ), array( 'label' => __( '18px', 'feeds-for-youtube' ), 'value' => '18px' ), array( 'label' => __( '16px', 'feeds-for-youtube' ), 'value' => '16px' ), array( 'label' => __( '15px', 'feeds-for-youtube' ), 'value' => '15px' ), array( 'label' => __( '14px', 'feeds-for-youtube' ), 'value' => '14px' ), array( 'label' => __( '13px', 'feeds-for-youtube' ), 'value' => '13px' ), array( 'label' => __( '12px', 'feeds-for-youtube' ), 'value' => '12px' ), ); $args = array( 'name' => 'descriptiontextsize', 'default' => '13px', 'section' => 'sbspf_info_display', 'callback' => 'select', 'title' => __( 'Description Text Size', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'descriptiontextsize', 'example' => 'inherit', 'description' => __( 'Size of description text, size of other text will be relative to this size.', 'feeds-for-youtube' ) . ' 13px, 14px, inherit', 'display_section' => 'customize' ), 'tooltip_info' => __( 'Size of video description text, size of other text in the info display will be relative to this size.', 'feeds-for-youtube' ), 'options' => $select_options, ); $this->add_settings_field( $args ); $full_date = SBY_Display_Elements::full_date( strtotime( 'July 25th, 5:30 pm' ), array( 'dateformat' => '0', 'customdate' => '' ), $include_time = true ); $date_format_options = array( array( 'label' => sprintf( __( 'WordPress Default (%s)', 'feeds-for-youtube' ), $full_date ), 'value' => '0' ), array( 'label' => __( 'July 25th, 5:30 pm', 'feeds-for-youtube' ), 'value' => '1' ), array( 'label' => __( 'July 25th', 'feeds-for-youtube' ), 'value' => '2' ), array( 'label' => __( 'Mon July 25th', 'feeds-for-youtube' ), 'value' => '3' ), array( 'label' => __( 'Monday July 25th', 'feeds-for-youtube' ), 'value' => '4' ), array( 'label' => __( 'Mon Jul 25th, 2020', 'feeds-for-youtube' ), 'value' => '5' ), array( 'label' => __( 'Monday July 25th, 2020 - 5:30 pm', 'feeds-for-youtube' ), 'value' => '6' ), array( 'label' => __( '07.25.20', 'feeds-for-youtube' ), 'value' => '7' ), array( 'label' => __( '07.25.20 - 17:30', 'feeds-for-youtube' ), 'value' => '8' ), array( 'label' => __( '07/25/20', 'feeds-for-youtube' ), 'value' => '9' ), array( 'label' => __( '25.07.20', 'feeds-for-youtube' ), 'value' => '10' ), array( 'label' => __( '25/07/20', 'feeds-for-youtube' ), 'value' => '11' ), array( 'label' => __( '25th July 2020, 17:30', 'feeds-for-youtube' ), 'value' => '12' ), array( 'label' => __( 'Custom (Enter Below)', 'feeds-for-youtube' ), 'value' => 'custom' ) ); $args = array( 'name' => 'dateformat', 'default' => '', 'section' => 'sbspf_info_display', 'date_formats' => $date_format_options, 'callback' => 'date_format', 'title' => __( 'Date Format', 'feeds-for-youtube' ) ); $this->add_settings_field( $args ); $this->add_false_field( 'userelative', 'customize' ); $this->add_false_field( 'disablecdn', 'customize' ); $args = array( 'title' => __( 'Info Text/Translations', 'feeds-for-youtube' ), 'id' => 'sbspf_info_text', 'tab' => 'customize', ); $this->add_settings_section( $args ); $args = array( 'name' => 'viewstext', 'default' => __( 'views', 'feeds-for-youtube' ), 'section' => 'sbspf_info_text', 'callback' => 'text', 'title' => __( '"Views" Text', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'viewstext', 'example' => '"times viewed"', 'description' => __( 'The text that appears after the number of views.', 'feeds-for-youtube' ), 'display_section' => 'text' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'agotext', 'default' => __( 'ago', 'feeds-for-youtube' ), 'section' => 'sbspf_info_text', 'callback' => 'text', 'title' => __( '"Ago" Text', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'agotext', 'example' => '"prior"', 'description' => __( 'The text that appears after relative times in the past.', 'feeds-for-youtube' ), 'display_section' => 'text' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'beforedatetext', 'default' => __( 'Streaming live', 'feeds-for-youtube' ), 'section' => 'sbspf_info_text', 'callback' => 'text', 'title' => __( 'Before Date Text', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'beforedatetext', 'example' => '"Watch Live"', 'description' => __( 'The text that appears before live stream dates.', 'feeds-for-youtube' ), 'display_section' => 'text' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'beforestreamtimetext', 'default' => __( 'Streaming live in', 'feeds-for-youtube' ), 'section' => 'sbspf_info_text', 'callback' => 'text', 'title' => __( 'Before Live Stream Text', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'beforestreamtimetext', 'example' => '"Starting in"', 'description' => __( 'The text that appears before relative live stream times.', 'feeds-for-youtube' ), 'display_section' => 'text' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'minutetext', 'default' => __( 'minute', 'feeds-for-youtube' ), 'section' => 'sbspf_info_text', 'callback' => 'text', 'title' => __( '"Minute" text', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'minutetext', 'example' => '"minuto"', 'description' => __( 'Translation for singular "minute".', 'feeds-for-youtube' ), 'display_section' => 'text' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'minutestext', 'default' => __( 'minute', 'feeds-for-youtube' ), 'section' => 'sbspf_info_text', 'callback' => 'text', 'title' => __( '"Minutes" text', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'minutestext', 'example' => '"minuten"', 'description' => __( 'Translation for plural "minutes".', 'feeds-for-youtube' ), 'display_section' => 'text' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'hourstext', 'default' => __( 'hours', 'feeds-for-youtube' ), 'section' => 'sbspf_info_text', 'callback' => 'text', 'title' => __( '"Hours" text', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'hourstext', 'example' => '"minuten"', 'description' => __( 'Translation for "hours".', 'feeds-for-youtube' ), 'display_section' => 'text' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'watchnowtext', 'default' => __( 'Watch Now', 'feeds-for-youtube' ), 'section' => 'sbspf_info_text', 'callback' => 'text', 'title' => __( '"Watch Now" Text', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'watchnowtext', 'example' => '"Now Playing"', 'description' => __( 'The text that appears when video is currently streaming live.', 'feeds-for-youtube' ), 'display_section' => 'text' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'thousandstext', 'default' => __( 'K', 'feeds-for-youtube' ), 'section' => 'sbspf_info_text', 'callback' => 'text', 'title' => __( '"Thousands" text', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'thousandstext', 'example' => '" thousand"', 'description' => __( 'Text after statistics if over 1 thousand.', 'feeds-for-youtube' ), 'display_section' => 'text' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'millionstext', 'default' => __( 'M', 'feeds-for-youtube' ), 'section' => 'sbspf_info_text', 'callback' => 'text', 'title' => __( '"Millions" text', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'millionstext', 'example' => '" million"', 'description' => __( 'Text after statistics if over 1 million.', 'feeds-for-youtube' ), 'display_section' => 'text' ) ); $this->add_settings_field( $args ); $args = array( 'title' => __( 'Header', 'feeds-for-youtube' ), 'id' => 'sbspf_header', 'tab' => 'customize', ); $this->add_settings_section( $args ); $args = array( 'name' => 'showheader', 'section' => 'sbspf_header', 'callback' => 'checkbox', 'title' => __( 'Show Header', 'feeds-for-youtube' ), 'default' => true, 'shortcode' => array( 'key' => 'showheader', 'example' => 'false', 'description' => __( 'Include a header for this feed.', 'feeds-for-youtube' ), 'display_section' => 'header' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'showdescription', 'section' => 'sbspf_header', 'callback' => 'checkbox', 'title' => __( 'Show Channel Description', 'feeds-for-youtube' ), 'default' => true, 'shortcode' => array( 'key' => 'showdescription', 'example' => 'false', 'description' => __( 'Include the channel description in the header.', 'feeds-for-youtube' ), 'display_section' => 'header' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'showsubscribers', 'section' => 'sbspf_header', 'callback' => 'checkbox', 'title' => __( 'Show Subscribers', 'feeds-for-youtube' ), 'default' => true, 'shortcode' => array( 'key' => 'showsubscribers', 'example' => 'false', 'description' => __( 'Include the number of subscribers in the header.', 'feeds-for-youtube' ), 'display_section' => 'header' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'subscriberstext', 'default' => __( 'subscribers', 'feeds-for-youtube' ), 'section' => 'sbspf_header', 'callback' => 'text', 'title' => __( '"Subscribers" Text', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'subscriberstext', 'example' => '"followers"', 'description' => __( 'The text that appears after the number of subscribers.', 'feeds-for-youtube' ), 'display_section' => 'header' ) ); $this->add_settings_field( $args ); $args = array( 'title' => __( '"Load More" Button', 'feeds-for-youtube' ), 'id' => 'sbspf_loadmore', 'tab' => 'customize', 'save_after' => 'true' ); $this->add_settings_section( $args ); $args = array( 'name' => 'showbutton', 'section' => 'sbspf_loadmore', 'callback' => 'checkbox', 'title' => __( 'Show "Load More" Button', 'feeds-for-youtube' ), 'default' => true, 'shortcode' => array( 'key' => 'showbutton', 'example' => 'false', 'description' => __( 'Include a "Load More" button at the bottom of the feed to load more videos.', 'feeds-for-youtube' ), 'display_section' => 'button' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'buttoncolor', 'default' => '', 'section' => 'sbspf_loadmore', 'callback' => 'color', 'title' => __( 'Button Background Color', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'buttoncolor', 'example' => '#0f0', 'description' => __( 'Background color for the "Load More" button. Any hex color code.', 'feeds-for-youtube' ), 'display_section' => 'button' ), ); $this->add_settings_field( $args ); $args = array( 'name' => 'buttontextcolor', 'default' => '', 'section' => 'sbspf_loadmore', 'callback' => 'color', 'title' => __( 'Button Text Color', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'buttontextcolor', 'example' => '#00f', 'description' => __( 'Text color for the "Load More" button. Any hex color code.', 'feeds-for-youtube' ), 'display_section' => 'button' ), ); $this->add_settings_field( $args ); $args = array( 'name' => 'buttontext', 'default' => __( 'Load More...', 'feeds-for-youtube' ), 'section' => 'sbspf_loadmore', 'callback' => 'text', 'title' => __( 'Button Text', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'buttontext', 'example' => '"More Videos"', 'description' => __( 'The text that appers on the "Load More" button.', 'feeds-for-youtube' ), 'display_section' => 'button' ) ); $this->add_settings_field( $args ); /* Subscribe button */ $args = array( 'title' => __( '"Subscribe" Button', 'feeds-for-youtube' ), 'id' => 'sbspf_subscribe', 'tab' => 'customize', 'save_after' => true ); $this->add_settings_section( $args ); $args = array( 'name' => 'showsubscribe', 'section' => 'sbspf_subscribe', 'callback' => 'checkbox', 'title' => __( 'Show "Subscribe" Button', 'feeds-for-youtube' ), 'default' => true, 'shortcode' => array( 'key' => 'showsubscribe', 'example' => 'false', 'description' => __( 'Include a "Subscribe" button at the bottom of the feed to load more videos.', 'feeds-for-youtube' ), 'display_section' => 'subscribe' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'subscribecolor', 'default' => '', 'section' => 'sbspf_subscribe', 'callback' => 'color', 'title' => __( 'Subscribe Background Color', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'subscribecolor', 'example' => '#0f0', 'description' => __( 'Background color for the "Subscribe" button. Any hex color code.', 'feeds-for-youtube' ), 'display_section' => 'subscribe' ), ); $this->add_settings_field( $args ); $args = array( 'name' => 'subscribetextcolor', 'default' => '', 'section' => 'sbspf_subscribe', 'callback' => 'color', 'title' => __( 'Subscribe Text Color', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'subscribetextcolor', 'example' => '#00f', 'description' => __( 'Text color for the "Subscribe" button. Any hex color code.', 'feeds-for-youtube' ), 'display_section' => 'subscribe' ), ); $this->add_settings_field( $args ); $args = array( 'name' => 'subscribetext', 'default' => __( 'Subscribe', 'feeds-for-youtube' ), 'section' => 'sbspf_subscribe', 'callback' => 'text', 'title' => __( 'Subscribe Text', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'subscribetext', 'example' => '"Subscribe to My Channel"', 'description' => __( 'The text that appers on the "Subscribe" button.', 'feeds-for-youtube' ), 'display_section' => 'subscribe' ) ); $this->add_settings_field( $args ); $args = array( 'title' => __( 'Video Experience', 'feeds-for-youtube' ), 'id' => 'sbspf_experience', 'tab' => 'customize', 'save_after' => 'true' ); $this->add_settings_section( $args ); $select_options = array( array( 'label' => '9:16', 'value' => '9:16' ), array( 'label' => '3:4', 'value' => '3:4' ), ); $args = array( 'name' => 'playerratio', 'default' => '9:16', 'section' => 'sbspf_experience', 'callback' => 'select', 'title' => __( 'Player Size Ratio', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'playerratio', 'example' => '9:16', 'description' => __( 'Player height relative to width e.g.', 'feeds-for-youtube' ) . ' 9:16, 3:4', 'display_section' => 'experience' ), 'options' => $select_options, 'tooltip_info' => __( 'A 9:16 ratio does not leave room for video title and playback tools while a 3:4 ratio does.', 'feeds-for-youtube' ) ); $this->add_settings_field( $args ); $select_options = array( array( 'label' => __( 'Play when clicked', 'feeds-for-youtube' ), 'value' => 'onclick' ), array( 'label' => 'Play automatically (desktop only)', 'value' => 'automatically' ) ); $args = array( 'name' => 'playvideo', 'default' => 'onclick', 'section' => 'sbspf_experience', 'callback' => 'select', 'title' => __( 'When does video play?', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'playvideo', 'example' => 'onclick', 'description' => __( 'What the user needs to do to play a video. eg.', 'feeds-for-youtube' ) . ' onclick, automatically', 'display_section' => 'experience' ), 'options' => $select_options, 'tooltip_info' => __( 'List layout will not play automatically. Choose whether to play the video automatically in the player or wait until the user clicks the play button after the video is loaded.', 'feeds-for-youtube' ) ); $this->add_settings_field( $args ); $cta_options = array( array( 'label' => __( 'Related Videos', 'feeds-for-youtube' ), 'slug' => 'related', 'note' => __( 'Display video thumbnails from the feed that play on your site when clicked.', 'feeds-for-youtube' ) ), array( 'label' => 'Custom Link', 'slug' => 'link', 'note' => __( 'Display a button link to a custom URL.', 'feeds-for-youtube' ), 'options' => array( array( 'name' => 'instructions', 'callback' => 'instructions', 'instructions' => __( 'To set a link for each video individually, add the link and button text in the video description on YouTube in this format:', 'feeds-for-youtube' ) . '

{Link: Button Text https://my-site.com/buy-now/my-product/}', 'label' => __( 'Custom link for each video', 'feeds-for-youtube' ), ), array( 'name' => 'url', 'callback' => 'text', 'label' => __( 'Default Link', 'feeds-for-youtube' ), 'class' => 'large-text', 'default' => '', 'shortcode' => array( 'example' => 'https://my-site.com/buy-now/my-product/', 'description' => __( 'URL for viewer to visit for the call to action.', 'feeds-for-youtube' ), ) ), array( 'name' => 'opentype', 'callback' => 'select', 'options' => array( array( 'label' => __( 'Same window', 'feeds-for-youtube' ), 'value' => 'same' ), array( 'label' => __( 'New window', 'feeds-for-youtube' ), 'value' => 'newwindow' ) ), 'label' => __( 'Link Open Type', 'feeds-for-youtube' ), 'default' => 'same', 'shortcode' => array( 'example' => 'newwindow', 'description' => __( 'Whether to open the page in a new window or the same window.', 'feeds-for-youtube' ), ) ), array( 'name' => 'text', 'callback' => 'text', 'label' => __( 'Default Button Text', 'feeds-for-youtube' ), 'default' => __( 'Learn More', 'feeds-for-youtube' ), 'shortcode' => array( 'example' => 'Buy Now', 'description' => __( 'Text that appears on the call-to-action button.', 'feeds-for-youtube' ), ) ), array( 'name' => 'color', 'default' => '', 'callback' => 'color', 'label' => __( 'Button Background Color', 'feeds-for-youtube' ), 'shortcode' => array( 'example' => '#0f0', 'description' => __( 'Button background. Turns opaque on hover.', 'feeds-for-youtube' ), ) ), array( 'name' => 'textcolor', 'default' => '', 'callback' => 'color', 'label' => __( 'Button Text Color', 'feeds-for-youtube' ), 'shortcode' => array( 'example' => '#0f0', 'description' => __( 'Color of the text on the call-to-action-button', 'feeds-for-youtube' ), ) ) ) ), array( 'label' => __( 'YouTube Default', 'feeds-for-youtube' ), 'slug' => 'default', 'note' => __( 'YouTube suggested videos from your channel that play on YouTube when clicked.', 'feeds-for-youtube' ) ), ); $args = array( 'name' => 'cta', 'default' => 'related', 'section' => 'sbspf_experience', 'callback' => 'sub_option', 'sub_options' => $cta_options, 'title' => __( 'Call to Action', 'feeds-for-youtube' ), 'before' => '

' . __( 'What the user sees when a video pauses or ends.', 'feeds-for-youtube' ) . '

', 'shortcode' => array( 'key' => 'cta', 'example' => 'link', 'description' => __( 'What the user sees when a video pauses or ends. eg.', 'feeds-for-youtube' ) . ' related, link', 'display_section' => 'experience' ), 'tooltip_info' => __( 'Choose what will happen after a video is paused or completes.', 'feeds-for-youtube' ) ); $this->add_settings_field( $args ); $args = array( 'title' => __( 'Moderation', 'feeds-for-youtube' ), 'id' => 'sbspf_moderation', 'tab' => 'customize', 'save_after' => 'true' ); $this->add_settings_section( $args ); $args = array( 'name' => 'includewords', 'default' => '', 'section' => 'sbspf_moderation', 'callback' => 'text', 'class' => 'large-text', 'title' => __( 'Show videos containing these words or hashtags', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'includewords', 'example' => '#filter', 'description' => __( 'Show videos that have specific text in the title or description.', 'feeds-for-youtube' ), 'display_section' => 'customize' ), 'additional' => __( '"includewords" separate multiple words with commas, include "#" for hashtags', 'feeds-for-youtube' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'excludewords', 'default' => '', 'section' => 'sbspf_moderation', 'callback' => 'text', 'class' => 'large-text', 'title' => __( 'Remove videos containing these words or hashtags', 'feeds-for-youtube' ), 'shortcode' => array( 'key' => 'excludewords', 'example' => '#filter', 'description' => __( 'Remove videos that have specific text in the title or description.', 'feeds-for-youtube' ), 'display_section' => 'customize' ), 'additional' => __( '"excludewords" separate multiple words with commas, include "#" for hashtags', 'feeds-for-youtube' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'hidevideos', 'default' => '', 'section' => 'sbspf_moderation', 'callback' => 'textarea', 'title' => __( 'Hide Specific Videos', 'feeds-for-youtube' ), 'options' => $select_options, 'tooltip_info' => __( 'Separate IDs with commas.', 'feeds-for-youtube' ) . ''.$this->default_tooltip_text().'

' . __( 'These are the specific ID numbers associated with a video or with a post. You can find the ID of a video by viewing the video on YouTube and copy/pasting the ID number from the end of the URL. ex. https://www.youtube.com/watch?v=Ij1KvL8eN', 'feeds-for-youtube' ) . '

' ); $this->add_settings_field( $args ); $args = array( 'title' => __( 'Custom Code Snippets', 'feeds-for-youtube' ), 'id' => 'sbspf_custom_snippets', 'tab' => 'customize' ); $this->add_settings_section( $args ); $args = array( 'name' => 'custom_css', 'default' => '', 'section' => 'sbspf_custom_snippets', 'callback' => 'textarea', 'title' => __( 'Custom CSS', 'feeds-for-youtube' ), 'options' => $select_options, 'tooltip_info' => __( 'Enter your own custom CSS in the box below', 'feeds-for-youtube' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'custom_js', 'default' => '', 'section' => 'sbspf_custom_snippets', 'callback' => 'textarea', 'title' => __( 'Custom JavaScript', 'feeds-for-youtube' ), 'options' => $select_options, 'tooltip_info' => __( 'Enter your own custom JavaScript/jQuery in the box below', 'feeds-for-youtube' ), 'note' => __( 'Note: Custom JavaScript reruns every time more videos are loaded into the feed', 'feeds-for-youtube' ) ); $this->add_settings_field( $args ); $args = array( 'title' => __( 'GDPR', 'feeds-for-youtube' ), 'id' => 'sbspf_gdpr', 'tab' => 'customize', 'save_after' => 'true' ); $this->add_settings_section( $args ); $this->add_settings_field( array( 'name' => 'gdpr', 'title' => __( 'Enable GDPR Settings', 'feeds-for-youtube' ), 'callback' => 'gdpr', // name of the function that outputs the html 'section' => 'sbspf_gdpr', // matches the section name )); $args = array( 'title' => __( 'Advanced', 'feeds-for-youtube' ), 'id' => 'sbspf_advanced', 'tab' => 'customize', 'save_after' => 'true' ); $this->add_settings_section( $args ); $args = array( 'name' => 'preserve_settings', 'section' => 'sbspf_advanced', 'callback' => 'checkbox', 'title' => __( 'Preserve settings when plugin is removed', 'feeds-for-youtube' ), 'default' => false, 'tooltip_info' => __( 'When removing the plugin your settings are automatically erased. Checking this box will prevent any settings from being deleted. This means that you can uninstall and reinstall the plugin without losing your settings.', 'feeds-for-youtube' ) ); $this->add_settings_field( $args ); $select_options = array( array( 'label' => __( 'Background', 'feeds-for-youtube' ), 'value' => 'background' ), array( 'label' => __( 'Page', 'feeds-for-youtube' ), 'value' => 'page' ), array( 'label' => __( 'None', 'feeds-for-youtube' ), 'value' => 'none' ) ); $additional = ''; $args = array( 'name' => 'storage_process', 'default' => '', 'section' => 'sbspf_advanced', 'callback' => 'select', 'title' => __( 'Local storage process', 'feeds-for-youtube' ), 'options' => $select_options, 'additional' => $additional, 'tooltip_info' => __( 'To preserve your feeds and videos even if the YouTube API is unavailable, a record of each video is added to the wp_posts table in the WordPress database. Please note that changing this setting to "none" will limit the number of posts available in the feed to 15 or less.', 'feeds-for-youtube' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'ajaxtheme', 'section' => 'sbspf_advanced', 'callback' => 'checkbox', 'title' => __( 'Are you using an AJAX theme?', 'feeds-for-youtube' ), 'default' => false, 'tooltip_info' => __( 'When navigating your site, if your theme uses Ajax to load content into your pages (meaning your page doesn\'t refresh) then check this setting. If you\'re not sure then it\'s best to leave this setting unchecked while checking with your theme author, otherwise checking it may cause a problem.', 'feeds-for-youtube' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'ajax_post_load', 'section' => 'sbspf_advanced', 'callback' => 'checkbox', 'title' => __( 'Load initial posts with AJAX', 'feeds-for-youtube' ), 'default' => false, 'tooltip_info' => __( 'Initial videos will be loaded using AJAX instead of added to the page directly. If you use page caching, this will allow the feed to update according to the "Check for new videos every" setting on the "Configure" tab.', 'feeds-for-youtube' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'customtemplates', 'section' => 'sbspf_advanced', 'callback' => 'checkbox', 'title' => __( 'Enable Custom Templates', 'feeds-for-youtube' ), 'default' => false, 'tooltip_info' => __( 'The default HTML for the feed can be replaced with custom templates added to your theme\'s folder. Enable this setting to use these templates. See this guide', 'feeds-for-youtube' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'eagerload', 'section' => 'sbspf_advanced', 'callback' => 'checkbox', 'title' => __( 'Load Iframes on Page Load', 'feeds-for-youtube' ), 'default' => false, 'tooltip_info' => __( 'To optimize the performance of your site and feeds, the plugin loads iframes only after a visitor interacts with the feed. Enabling this setting will cause YouTube player iframes to load when the page loads. Some features may work differently when this is enabled.', 'feeds-for-youtube' ) ); $this->add_settings_field( $args ); $args = array( 'name' => 'enqueue_js_in_head', 'section' => 'sbspf_advanced', 'callback' => 'checkbox', 'title' => __( 'Enqueue JS file in head', 'feeds-for-youtube' ), 'default' => false, 'tooltip_info' => __( 'Check this box if you\'d like to enqueue the JavaScript file for the plugin in the head instead of the footer.', 'feeds-for-youtube' ) ); $this->add_settings_field( $args ); } public function instructions( $args ) { ?>
vars->social_network(); $type_selected = isset( $this->settings['caching_type'] ) ? $this->settings['caching_type'] : 'page'; $caching_time = isset( $this->settings['caching_time'] ) ? $this->settings['caching_time'] : 1; $cache_time_unit_selected = isset( $this->settings['caching_time_unit'] ) ? $this->settings['caching_time_unit'] : 'hours'; $cache_cron_interval_selected = isset( $this->settings['cache_cron_interval'] ) ? $this->settings['cache_cron_interval'] : ''; $cache_cron_time = isset( $this->settings['cache_cron_time'] ) ? $this->settings['cache_cron_time'] : ''; $cache_cron_am_pm = isset( $this->settings['cache_cron_am_pm'] ) ? $this->settings['cache_cron_am_pm'] : ''; ?>
> default_tooltip_text(); ?>


1. When the page loads
Selecting this option means that when the cache expires then the plugin will check %s for new posts the next time that the feed is loaded. You can choose how long this data should be cached for. If you set the time to 60 minutes then the plugin will clear the cached data after that length of time, and the next time the page is viewed it will check for new data. Tip: If you're experiencing an issue with the plugin not updating automatically then try enabling the setting labeled 'Cron Clear Cache' which is located on the 'Customize' tab.

2. In the background
Selecting this option means that the plugin will check for new data in the background so that the feed is updated behind the scenes. You can select at what time and how often the plugin should check for new data using the settings below. Please note that the plugin will initially check for data from YouTube when the page first loads, but then after that will check in the background on the schedule selected - unless the cache is cleared.", 'feeds-for-youtube' ), $social_network, $social_network ); ?>

>
' . __( 'Next check', 'feeds-for-youtube' ) . ': ' . date( $time_format, $sbspf_next_cron_event + sby_get_utc_offset() ) . ' (' . $schedule . ') - ' . __( 'Note: Saving the settings on this page will clear the cache and reset this schedule', 'feeds-for-youtube' ) . '

'; } else { echo '

' . __( 'Nothing currently scheduled', 'feeds-for-youtube' ) . '

'; } ?>
settings['gdpr'] ) ) ? $this->settings['gdpr'] : 'auto'; $select_options = array( array( 'label' => __( 'Automatic', 'feeds-for-youtube' ), 'value' => 'auto' ), array( 'label' => __( 'Yes', 'feeds-for-youtube' ), 'value' => 'yes' ), array( 'label' => __( 'No', 'feeds-for-youtube' ), 'value' => 'no' ) ) ?>
  • " . __('YouTube Player API will not be loaded.', 'feeds-for-youtube') . "
  • " . __('Thumbnail images for videos will be displayed instead of the actual video.', 'feeds-for-youtube') . "
  • " . __('To view videos, visitors will click on links to view the video on youtube.com.', 'feeds-for-youtube') . "
  • "; ?>
    default_tooltip_text(); ?>

    :

    " . $gdpr_list . '
    '; ?>

    :

    : ' . __( 'GDPR cookie plugins', 'feeds-for-youtube' ) . '' ); ?>

    '. __( 'Click here', 'feeds-for-youtube' ).'' ); ?>

    settings['disablecdn'] ) && $this->settings['disablecdn'] ? ' checked' : false; ?> > default_tooltip_text(); ?>


    " . $gdpr_list . '
    '; ?>

    GDPR consent plugin, or manually enable the setting above to display a GDPR compliant version of the feed to all visitors.', 'feeds-for-youtube' ); ?>

    settings['usecustomsearch'] ? ' checked' : ''; $custom_search_string = $this->settings['customsearch']; ?>
     
    > Custom Search Guide

    settings['showpast'] ? ' checked' : ''; ?>
     
    >
    settings[ $args['name'] ] ) ? $this->settings[ $args['name'] ] : 'related'; $cta_options = $args['sub_options']; ?>
    >
       
    Eg: =

    'userelative', 'callback' => 'checkbox', 'label' => __( 'Use relative times when less than 2 days', 'feeds-for-youtube' ), 'default' => true, //'shortcode_example' => 'false', //'has_shortcode' => '1', 'tooltip_info' => __( 'For times that are within 2 days of the video playing time, relative times are displayed rather than the date. e.g. "5 hours ago"', 'feeds-for-youtube' ) ); ?>
    checkbox( $checkbox_args ); ?>

    select( $args ); $value = isset( $this->settings['customdate'] ) ? stripslashes( $this->settings['customdate'] ) : ''; ?>