__( 'Choose from one of our built-in layout options; grid, carousel, masonry, and highlight to allow you to showcase your content in any way you want.', 'instagram-feed' ),
'bullets' => array(
'heading' => __( 'And get much more!', 'instagram-feed' ),
'content' => array(
__( 'Display Hashtag & Tagged feeds', 'instagram-feed' ),
__( 'Powerful visual moderation', 'instagram-feed' ),
__( 'Comments and Likes', 'instagram-feed' ),
__( 'Highlight specific posts', 'instagram-feed' ),
__( 'Multiple layout options', 'instagram-feed' ),
__( 'Popup photo/video lightbox', 'instagram-feed' ),
__( 'Instagram Stories', 'instagram-feed' ),
__( 'Shoppable feeds', 'instagram-feed' ),
__( 'Pro support', 'instagram-feed' ),
__( 'Post captions', 'instagram-feed' ),
__( 'Combine multiple feed types', 'instagram-feed' ),
__( '30 day money back guarantee', 'instagram-feed' ),
)
),
'buyUrl' => sprintf( 'https://smashballoon.com/instagram-feed/demo/?utm_campaign=instagram-free&utm_source=customizer&utm_medium=feed-layouts' )
),
'headerLayout' => array(
'heading' => __( 'Get Stories, Followers and Advanced Header Options', 'instagram-feed' ),
'description' => __( 'Got stories to tell? We want to help you share them. Display Instagram stories right on your website in a pop-up lightbox to keep your users engaged and on your website for longer.', 'instagram-feed' ),
'bullets' => array(
'heading' => __( 'And get much more!', 'instagram-feed' ),
'content' => array(
__( 'Display Hashtag & Tagged feeds', 'instagram-feed' ),
__( 'Powerful visual moderation', 'instagram-feed' ),
__( 'Comments and Likes', 'instagram-feed' ),
__( 'Highlight specific posts', 'instagram-feed' ),
__( 'Multiple layout options', 'instagram-feed' ),
__( 'Popup photo/video lightbox', 'instagram-feed' ),
__( 'Instagram Stories', 'instagram-feed' ),
__( 'Shoppable feeds', 'instagram-feed' ),
__( 'Pro support', 'instagram-feed' ),
__( 'Post captions', 'instagram-feed' ),
__( 'Combine multiple feed types', 'instagram-feed' ),
__( '30 day money back guarantee', 'instagram-feed' ),
)
),
'buyUrl' => sprintf( 'https://smashballoon.com/instagram-feed/demo/?utm_campaign=instagram-free&utm_source=customizer&utm_medium=header' )
),
'postStyling' => array(
'heading' => __( 'Display Captions, Likes, and Comments', 'instagram-feed' ),
'description' => __( 'Upgrade to Pro to display post captions below each post and in the lightbox, which can be crawled by search engines to help boost SEO.', 'instagram-feed' ),
'bullets' => array(
'heading' => __( 'And get much more!', 'instagram-feed' ),
'content' => array(
__( 'Display Hashtag & Tagged feeds', 'instagram-feed' ),
__( 'Powerful visual moderation', 'instagram-feed' ),
__( 'Comments and Likes', 'instagram-feed' ),
__( 'Highlight specific posts', 'instagram-feed' ),
__( 'Multiple layout options', 'instagram-feed' ),
__( 'Popup photo/video lightbox', 'instagram-feed' ),
__( 'Instagram Stories', 'instagram-feed' ),
__( 'Shoppable feeds', 'instagram-feed' ),
__( 'Pro support', 'instagram-feed' ),
__( 'Post captions', 'instagram-feed' ),
__( 'Combine multiple feed types', 'instagram-feed' ),
__( '30 day money back guarantee', 'instagram-feed' ),
)
),
'buyUrl' => sprintf( 'https://smashballoon.com/instagram-feed/demo/?utm_campaign=instagram-free&utm_source=customizer&utm_medium=posts' )
),
'lightbox' => array(
'heading' => __( 'Upgrade to Pro to enable the popup Lightbox', 'instagram-feed' ),
'description' => __( 'Allow visitors to view your photos and videos in a beautiful full size lightbox, keeping them on your site for longer to discover more of your content.', 'instagram-feed' ),
'bullets' => array(
'heading' => __( 'And get much more!', 'instagram-feed' ),
'content' => array(
__( 'Display Hashtag & Tagged feeds', 'instagram-feed' ),
__( 'Powerful visual moderation', 'instagram-feed' ),
__( 'Comments and Likes', 'instagram-feed' ),
__( 'Highlight specific posts', 'instagram-feed' ),
__( 'Multiple layout options', 'instagram-feed' ),
__( 'Popup photo/video lightbox', 'instagram-feed' ),
__( 'Instagram Stories', 'instagram-feed' ),
__( 'Shoppable feeds', 'instagram-feed' ),
__( 'Pro support', 'instagram-feed' ),
__( 'Post captions', 'instagram-feed' ),
__( 'Combine multiple feed types', 'instagram-feed' ),
__( '30 day money back guarantee', 'instagram-feed' ),
)
),
'buyUrl' => sprintf( 'https://smashballoon.com/instagram-feed/demo/?utm_campaign=instagram-free&utm_source=customizer&utm_medium=lightbox' )
),
'filtermoderation' => array(
'heading' => __( 'Get Advanced Moderation and Filters with Pro', 'instagram-feed' ),
'description' => __( 'Use powerful moderation tools to create feeds of only specific chosen posts, or exclude specific chosen posts. You can also automatically include or exclude posts based on a word or hashtag found in the caption.', 'instagram-feed' ),
'bullets' => array(
'heading' => __( 'And get much more!', 'instagram-feed' ),
'content' => array(
__( 'Display Hashtag & Tagged feeds', 'instagram-feed' ),
__( 'Powerful visual moderation', 'instagram-feed' ),
__( 'Comments and Likes', 'instagram-feed' ),
__( 'Highlight specific posts', 'instagram-feed' ),
__( 'Multiple layout options', 'instagram-feed' ),
__( 'Popup photo/video lightbox', 'instagram-feed' ),
__( 'Instagram Stories', 'instagram-feed' ),
__( 'Shoppable feeds', 'instagram-feed' ),
__( 'Pro support', 'instagram-feed' ),
__( 'Post captions', 'instagram-feed' ),
__( 'Combine multiple feed types', 'instagram-feed' ),
__( '30 day money back guarantee', 'instagram-feed' ),
)
),
'buyUrl' => sprintf( 'https://smashballoon.com/instagram-feed/demo/?utm_campaign=instagram-free&utm_source=customizer&utm_medium=filters' )
),
'shoppablefeed' => array(
'heading' => __( 'Upgrade to Pro to Get Shoppable Feeds', 'instagram-feed' ),
'description' => __( 'Automatically link Instagram posts to custom URLs of your choosing by adding the URL in the caption, or manually add links to specific pages or products on your site (or other sites) in a quick and easy way.', 'instagram-feed' ),
'bullets' => array(
'heading' => __( 'And get much more!', 'instagram-feed' ),
'content' => array(
__( 'Display Hashtag & Tagged feeds', 'instagram-feed' ),
__( 'Powerful visual moderation', 'instagram-feed' ),
__( 'Comments and Likes', 'instagram-feed' ),
__( 'Highlight specific posts', 'instagram-feed' ),
__( 'Multiple layout options', 'instagram-feed' ),
__( 'Popup photo/video lightbox', 'instagram-feed' ),
__( 'Instagram Stories', 'instagram-feed' ),
__( 'Shoppable feeds', 'instagram-feed' ),
__( 'Pro support', 'instagram-feed' ),
__( 'Post captions', 'instagram-feed' ),
__( 'Combine multiple feed types', 'instagram-feed' ),
__( '30 day money back guarantee', 'instagram-feed' ),
)
),
'buyUrl' => sprintf( 'https://smashballoon.com/instagram-feed/demo/?utm_campaign=instagram-free&utm_source=customizer&utm_medium=shoppable' )
),
),
'personalAccountScreen' => self::personal_account_screen_text(),
'onboardingWizardContent' => \InstagramFeed\admin\SBI_Onboarding_wizard::get_onboarding_wizard_content()
);
if ( $newly_retrieved_source_connection_data ) {
$sbi_builder['newSourceData'] = $newly_retrieved_source_connection_data;
}
if ( isset( $_GET['manualsource'] ) && $_GET['manualsource'] == true ) {
$sbi_builder['manualSourcePopupInit'] = true;
}
$maybe_feed_customizer_data = SBI_Feed_Saver_Manager::maybe_feed_customizer_data();
if ( $maybe_feed_customizer_data ) {
sb_instagram_scripts_enqueue( true );
$sbi_builder['customizerFeedData'] = $maybe_feed_customizer_data;
$sbi_builder['customizerSidebarBuilder'] = \InstagramFeed\Builder\Tabs\SBI_Builder_Customizer_Tab::get_customizer_tabs();
$sbi_builder['wordpressPageLists'] = $this->get_wp_pages();
$sbi_builder['instagram_feed_dismiss_lite'] = get_transient( 'instagram_feed_dismiss_lite' );
if ( ! isset( $_GET['feed_id'] ) || $_GET['feed_id'] === 'legacy' ) {
$feed_id = 'legacy';
$customizer_atts = array(
'feed' => 'legacy',
'customizer' => true
);
} elseif ( intval( $_GET['feed_id'] ) > 0 ) {
$feed_id = intval( $_GET['feed_id'] );
$customizer_atts = array(
'feed' => $feed_id,
'customizer' => true
);
}
if ( ! empty( $feed_id ) ) {
$settings_preview = self::add_customizer_att( $customizer_atts );
if ( $feed_id === 'legacy' ) {
$preview_settings = \SB_Instagram_Settings::get_legacy_feed_settings();
$preview_settings['customizer'] = true;
$sbi_builder['feedInitOutput'] = htmlspecialchars( display_instagram( $customizer_atts, $preview_settings ) );
} else {
$sbi_builder['feedInitOutput'] = htmlspecialchars( display_instagram( $settings_preview, true ) );
}
}
// Date
global $wp_locale;
wp_enqueue_script(
'sbi-date_i18n',
SBI_PLUGIN_URL . 'admin/builder/assets/js/date_i18n.js',
null,
SBIVER,
true
);
$monthNames = array_map(
array( &$wp_locale, 'get_month' ),
range( 1, 12 )
);
$monthNamesShort = array_map(
array( &$wp_locale, 'get_month_abbrev' ),
$monthNames
);
$dayNames = array_map(
array( &$wp_locale, 'get_weekday' ),
range( 0, 6 )
);
$dayNamesShort = array_map(
array( &$wp_locale, 'get_weekday_abbrev' ),
$dayNames
);
wp_localize_script(
'sbi-date_i18n',
'DATE_I18N',
array(
'month_names' => $monthNames,
'month_names_short' => $monthNamesShort,
'day_names' => $dayNames,
'day_names_short' => $dayNamesShort
)
);
}
wp_enqueue_style(
'sbi-builder-style',
SBI_PLUGIN_URL . 'admin/builder/assets/css/builder.css',
false,
SBIVER
);
self::global_enqueue_ressources_scripts();
wp_register_script('feed-builder-svgs', SBI_PLUGIN_URL . 'assets/svgs/svgs.js');
wp_enqueue_script(
'sbi-builder-app',
SBI_PLUGIN_URL . 'admin/builder/assets/js/builder.js',
array('feed-builder-svgs'),
SBIVER,
true
);
// Customize screens
$sbi_builder['customizeScreens'] = $this->get_customize_screens_text();
wp_localize_script(
'sbi-builder-app',
'sbi_builder',
$sbi_builder
);
wp_enqueue_media();
endif;
endif;
}
/**
* Get WP Pages List
*
* @return array
*
* @since 6.0
*/
public function get_wp_pages() {
$pagesList = get_pages();
$pagesResult = array();
if ( is_array( $pagesList ) ) {
foreach ( $pagesList as $page ) {
array_push(
$pagesResult,
array(
'id' => $page->ID,
'title' => $page->post_title
)
);
}
}
return $pagesResult;
}
/**
* Global JS + CSS Files
*
* Shared JS + CSS ressources for the admin panel
*
* @since 6.0
*/
public static function global_enqueue_ressources_scripts( $is_settings = false ) {
wp_enqueue_style(
'feed-global-style',
SBI_PLUGIN_URL . 'admin/builder/assets/css/global.css',
false,
SBIVER
);
wp_enqueue_script(
'sb-vue',
SBI_PLUGIN_URL . 'js/vue.min.js',
null,
'2.6.12',
true
);
wp_enqueue_script(
'feed-colorpicker-vue',
SBI_PLUGIN_URL . 'admin/builder/assets/js/vue-color.min.js',
null,
SBIVER,
true
);
wp_enqueue_script(
'feed-builder-ressources',
SBI_PLUGIN_URL . 'admin/builder/assets/js/ressources.js',
null,
SBIVER,
true
);
wp_enqueue_script(
'sb-dialog-box',
SBI_PLUGIN_URL . 'admin/builder/assets/js/confirm-dialog.js',
null,
SBIVER,
true
);
wp_enqueue_script(
'install-plugin-popup',
SBI_PLUGIN_URL . 'admin/builder/assets/js/install-plugin-popup.js',
null,
SBIVER,
true
);
wp_enqueue_script(
'sb-add-source',
SBI_PLUGIN_URL . 'admin/builder/assets/js/add-source.js',
null,
SBIVER,
true
);
$newly_retrieved_source_connection_data = SBI_Source::maybe_source_connection_data();
$sbi_source = array(
'sources' => self::get_source_list(),
'sourceConnectionURLs' => SBI_Source::get_connection_urls( $is_settings ),
'nonce' => wp_create_nonce( 'sbi-admin' ),
);
if ( $newly_retrieved_source_connection_data ) {
$sbi_source['newSourceData'] = $newly_retrieved_source_connection_data;
}
if ( isset( $_GET['manualsource'] ) && $_GET['manualsource'] == true ) {
$sbi_source['manualSourcePopupInit'] = true;
}
wp_localize_script(
'sb-add-source',
'sbi_source',
$sbi_source
);
wp_enqueue_script(
'sb-personal-account',
SBI_PLUGIN_URL . 'admin/builder/assets/js/personal-account.js',
null,
SBIVER,
true
);
$sbi_personal_account = array(
'personalAccountScreen' => self::personal_account_screen_text(),
'nonce' => wp_create_nonce( 'sbi-admin' ),
'ajaxHandler' => admin_url( 'admin-ajax.php' ),
);
wp_localize_script(
'sb-personal-account',
'sbi_personal_account',
$sbi_personal_account
);
}
/**
* Get Generic text
*
* @return array
*
* @since 6.0
*/
public static function get_generic_text() {
return array(
'done' => __( 'Done', 'instagram-feed' ),
'title' => __( 'Settings', 'instagram-feed' ),
'dashboard' => __( 'Dashboard', 'instagram-feed' ),
'setup' => __( 'Setup', 'instagram-feed' ),
'addNew' => __( 'Add New', 'instagram-feed' ),
'addSource' => __( 'Add Source', 'instagram-feed' ),
'addAnotherSource' => __( 'Add another Source', 'instagram-feed' ),
'addSourceType' => __( 'Add Another Source Type', 'instagram-feed' ),
'previous' => __( 'Previous', 'instagram-feed' ),
'next' => __( 'Next', 'instagram-feed' ),
'finish' => __( 'Finish', 'instagram-feed' ),
'new' => __( 'New', 'instagram-feed' ),
'update' => __( 'Update', 'instagram-feed' ),
'upgrade' => __( 'Try the Pro Demo', 'instagram-feed' ),
'settings' => __( 'Settings', 'instagram-feed' ),
'back' => __( 'Back', 'instagram-feed' ),
'backAllFeeds' => __( 'Back to all feeds', 'instagram-feed' ),
'createFeed' => __( 'Create Feed', 'instagram-feed' ),
'add' => __( 'Add', 'instagram-feed' ),
'change' => __( 'Change', 'instagram-feed' ),
'getExtention' => __( 'Get Extension', 'instagram-feed' ),
'viewDemo' => __( 'View Demo', 'instagram-feed' ),
'includes' => __( 'Includes', 'instagram-feed' ),
'photos' => __( 'Photos', 'instagram-feed' ),
'photo' => __( 'Photo', 'instagram-feed' ),
'apply' => __( 'Apply', 'instagram-feed' ),
'copy' => __( 'Copy', 'instagram-feed' ),
'edit' => __( 'Edit', 'instagram-feed' ),
'duplicate' => __( 'Duplicate', 'instagram-feed' ),
'delete' => __( 'Delete', 'instagram-feed' ),
'remove' => __( 'Remove', 'instagram-feed' ),
'removeSource' => __( 'Remove Source', 'instagram-feed' ),
'shortcode' => __( 'Shortcode', 'instagram-feed' ),
'clickViewInstances' => __( 'Click to view Instances', 'instagram-feed' ),
'usedIn' => __( 'Used in', 'instagram-feed' ),
'place' => __( 'place', 'instagram-feed' ),
'places' => __( 'places', 'instagram-feed' ),
'item' => __( 'Item', 'instagram-feed' ),
'items' => __( 'Items', 'instagram-feed' ),
'learnMore' => __( 'Learn More', 'instagram-feed' ),
'location' => __( 'Location', 'instagram-feed' ),
'page' => __( 'Page', 'instagram-feed' ),
'copiedClipboard' => __( 'Copied to Clipboard', 'instagram-feed' ),
'feedImported' => __( 'Feed imported successfully', 'instagram-feed' ),
'failedToImportFeed' => __( 'Failed to import feed', 'instagram-feed' ),
'timeline' => __( 'Timeline', 'instagram-feed' ),
'help' => __( 'Help', 'instagram-feed' ),
'admin' => __( 'Admin', 'instagram-feed' ),
'member' => __( 'Member', 'instagram-feed' ),
'reset' => __( 'Reset', 'instagram-feed' ),
'preview' => __( 'Preview', 'instagram-feed' ),
'name' => __( 'Name', 'instagram-feed' ),
'id' => __( 'ID', 'instagram-feed' ),
'token' => __( 'Token', 'instagram-feed' ),
'confirm' => __( 'Confirm', 'instagram-feed' ),
'cancel' => __( 'Cancel', 'instagram-feed' ),
'clear' => __( 'Clear', 'instagram-feed' ),
'clearFeedCache' => __( 'Clear Feed Cache', 'instagram-feed' ),
'saveSettings' => __( 'Save Changes', 'instagram-feed' ),
'feedName' => __( 'Feed Name', 'instagram-feed' ),
'shortcodeText' => __( 'Shortcode', 'instagram-feed' ),
'general' => __( 'General', 'instagram-feed' ),
'feeds' => __( 'Feeds', 'instagram-feed' ),
'translation' => __( 'Translation', 'instagram-feed' ),
'advanced' => __( 'Advanced', 'instagram-feed' ),
'error' => __( 'Error:', 'instagram-feed' ),
'errorNotice' => __( 'There was an error when trying to connect to Instagram.', 'instagram-feed' ),
'errorDirections' => '' . __( 'Directions on How to Resolve This Issue', 'instagram-feed' ) . '',
'errorSource' => __( 'Source Invalid', 'instagram-feed' ),
'errorEncryption' => __( 'Encryption Error', 'instagram-feed' ),
'invalid' => __( 'Invalid', 'instagram-feed' ),
'reconnect' => __( 'Reconnect', 'instagram-feed' ),
'feed' => __( 'feed', 'instagram-feed' ),
'sourceNotUsedYet' => __( 'Source is not used yet', 'instagram-feed' ),
'addImage' => __( 'Add Image', 'instagram-feed' ),
'businessRequired' => __( 'Business Account required', 'instagram-feed' ),
'selectedPost' => __( 'Selected Post', 'instagram-feed' ),
'productLink' => __( 'Product Link', 'instagram-feed' ),
'enterProductLink' => __( 'Add your product URL here', 'instagram-feed' ),
'editSources' => __( 'Edit Sources', 'instagram-feed' ),
'moderateFeed' => __( 'Moderate your feed', 'instagram-feed' ),
'moderateFeedSaveExit' => __( 'Save and Exit', 'instagram-feed' ),
'moderationMode' => __( 'Moderation Mode', 'instagram-feed' ),
'moderationModeEnterPostId' => __( 'Or Enter Post IDs to hide manually', 'instagram-feed' ),
'moderationModeTextareaPlaceholder' => __( 'Add words here to hide any posts containing these words', 'instagram-feed' ),
'filtersAndModeration' => __( 'Filters & Moderation', 'instagram-feed' ),
'topRated' => __( 'Top Rated', 'instagram-feed' ),
'mostRecent' => __( 'Most recent', 'instagram-feed' ),
'moderationModePreview' => __( 'Moderation Mode Preview', 'instagram-feed' ),
'exitSetup' => __( 'Exit Setup', 'instagram-feed' ),
'notification' => array(
'feedSaved' => array(
'type' => 'success',
'text' => __( 'Feed saved successfully', 'instagram-feed' )
),
'feedSavedError' => array(
'type' => 'error',
'text' => __( 'Error saving Feed', 'instagram-feed' )
),
'previewUpdated' => array(
'type' => 'success',
'text' => __( 'Preview updated successfully', 'instagram-feed' )
),
'carouselLayoutUpdated' => array(
'type' => 'success',
'text' => __( 'Carousel updated successfully', 'instagram-feed' )
),
'unkownError' => array(
'type' => 'error',
'text' => __( 'Unknown error occurred', 'instagram-feed' )
),
'cacheCleared' => array(
'type' => 'success',
'text' => __( 'Feed cache cleared', 'instagram-feed' )
),
'selectSourceError' => array(
'type' => 'error',
'text' => __( 'Please select a source for your feed', 'instagram-feed' )
),
'commentCacheCleared' => array(
'type' => 'success',
'text' => __( 'Comment cache cleared', 'instagram-feed' )
),
'personalAccountUpdated' => array(
'type' => 'success',
'text' => __( 'Personal account updated', 'instagram-feed' )
)
),
'install' => __( 'Install', 'instagram-feed' ),
'installed' => __( 'Installed', 'instagram-feed' ),
'activate' => __( 'Activate', 'instagram-feed' ),
'installedAndActivated' => __( 'Installed & Activated', 'instagram-feed' ),
'free' => __( 'Free', 'instagram-feed' ),
'invalidLicenseKey' => __( 'Invalid license key', 'instagram-feed' ),
'licenseActivated' => __( 'License activated', 'instagram-feed' ),
'licenseDeactivated' => __( 'License Deactivated', 'instagram-feed' ),
'carouselLayoutUpdated' => array(
'type' => 'success',
'text' => __( 'Carousel Layout updated', 'instagram-feed' )
),
'getMoreFeatures' => __( 'Get more features with Instagram Feed Pro', 'instagram-feed' ),
'liteFeedUsers' => __( 'Lite users get 50% OFF', 'instagram-feed' ),
'liteFeedUsersAutoApply' => __( 'Lite Feed Users get a 50% OFF (auto-applied at checkout)', 'instagram-feed' ),
'liteFeedUsersSimpleText' => __( 'Lite Feed Users get a 50% OFF', 'instagram-feed' ),
'liteFeedUsersAutoCheckout' => __( 'auto-applied at checkout', 'instagram-feed' ),
'tryDemo' => __( 'Try Demo', 'instagram-feed' ),
'displayImagesVideos' => __( 'Display images and videos in posts', 'instagram-feed' ),
'viewLikesShares' => __( 'View likes, shares and comments', 'instagram-feed' ),
'allFeedTypes' => __( 'All Feed Types: Photos, Albums, Events and more', 'instagram-feed' ),
'abilityToLoad' => __( 'Ability to “Load More” posts', 'instagram-feed' ),
'ctaHashtag' => __( 'Display Hashtag Feeds', 'instagram-feed' ),
'ctaLayout' => __( 'Carousel, Masonry, & Highlight layouts', 'instagram-feed' ),
'ctaPopups' => __( 'View posts in a pop-up lightbox', 'instagram-feed' ),
'ctaFilter' => __( 'Powerful post filtering and moderation', 'instagram-feed' ),
'andMuchMore' => __( 'And Much More!', 'instagram-feed' ),
'sbiFreeCTAFeatures' => array(
__( 'Create shoppable feeds', 'instagram-feed' ),
__( 'Combine multiple feed types', 'instagram-feed' ),
__( 'Display likes, captions & comments', 'instagram-feed' ),
__( 'Instagram Stories', 'instagram-feed' ),
__( 'Play videos in your feed', 'instagram-feed' ),
__( 'Highlight specific posts', 'instagram-feed' ),
__( 'Display tagged posts', 'instagram-feed' ),
__( '30 day money back guarantee', 'instagram-feed' ),
__( 'Fast, friendly, and effective support', 'instagram-feed' ),
),
'ctaShowFeatures' => __( 'Show Features', 'instagram-feed' ),
'ctaHideFeatures' => __( 'Hide Features', 'instagram-feed' ),
'upgradeToPro' => __( 'Upgrade to Pro', 'instagram-feed' ),
'redirectLoading' => array(
'heading' => __( 'Redirecting to connect.smashballoon.com', 'instagram-feed' ),
'description' => __( 'You will be redirected to our app so you can connect your account in 5 seconds', 'instagram-feed' ),
),
'addAccountInfo' => __( 'Add Avatar and Bio', 'instagram-feed' ),
'updateAccountInfo' => __( 'Update Avatar and Bio', 'instagram-feed' ),
'personalAccountUpdated' => __( 'Personal account updated', 'instagram-feed' ),
'accountTypeInfo' => __('Action required. Reconnect as a business account. Why?', 'instagram-feed'),
'accountTypeNotice' => __('As of December 2024, the personal account connection type will no longer work. Reconnect as a business account to continue using the plugin.', 'instagram-feed'),
);
}
/**
* Select Source Screen Text
*
* @return array
*
* @since 4.0
*/
public static function select_source_screen_text() {
return array(
'mainHeading' => __( 'Select one or more sources', 'instagram-feed' ),
'description' => __( 'Sources are Instagram accounts your feed will display content from', 'instagram-feed' ),
'emptySourceDescription' => __( 'Looks like you have not added any source.
Use “Add Source” to add a new one.', 'instagram-feed' ),
'mainHashtagHeading' => __( 'Enter Public Hashtags', 'instagram-feed' ),
'hashtagDescription' => __( 'Add one or more hashtag separated by comma', 'instagram-feed' ),
'hashtagGetBy' => __( 'Fetch posts that are', 'instagram-feed' ),
'sourcesListPopup' => array(
'user' => array(
'mainHeading' => __( 'Add a source for Timeline', 'instagram-feed' ),
'description' => __( 'Select or add an account you want to display the timeline for', 'instagram-feed' ),
),
'tagged' => array(
'mainHeading' => __( 'Add a source for Mentions', 'instagram-feed' ),
'description' => __( 'Select or add an account you want to display the mentions for', 'instagram-feed' ),
)
),
'perosnalAccountToolTipTxt' => array(
__(
'Due to changes in Instagram’s new API, we can no
longer get mentions for personal accounts. To
enable this for your account, you will need to convert it to
a Business account. Learn More',
'instagram-feed'
),
),
'groupsToolTip' => array(
__( 'Due to Facebook limitations, it\'s not possible to display photo feeds from a Group, only a Page.', 'instagram-feed' )
),
'updateHeading' => __( 'Update Source', 'instagram-feed' ),
'updateDescription' => __( 'Select a source from your connected Facebook Pages and Groups. Or, use "Add New" to connect a new one.', 'instagram-feed' ),
'updateFooter' => __( 'Add multiple Facebook Pages or Groups to a feed with our Multifeed extension', 'instagram-feed' ),
'noSources' => __( 'Please add a source in order to display a feed. Go to the "Settings" tab -> "Sources" section -> Click "Add New" to connect a source.', 'instagram-feed' ),
'multipleTypes' => array(
'user' => array(
'heading' => __( 'User Timeline', 'instagram-feed' ),
'icon' => 'user',
'description' => __( 'Connect an account to show posts for it.', 'instagram-feed' ),
'actionType' => 'addSource'
),
'hashtag' => array(
'heading' => __( 'Hashtag', 'instagram-feed' ),
'icon' => 'hashtag',
'description' => __( 'Add one or more hashtag separated by comma.', 'instagram-feed' ),
'businessRequired' => true,
'actionType' => 'inputHashtags'
),
'tagged' => array(
'heading' => __( 'Tagged', 'instagram-feed' ),
'icon' => 'mention',
'description' => __( 'Connect an account to show tagged posts. This does not give us any permission to manage your Instagram account.', 'instagram-feed' ),
'businessRequired' => true,
'actionType' => 'addSource'
)
),
'modal' => array(
'addNew' => __( 'Connect your Instagram Account', 'instagram-feed' ),
'selectSourceType' => __( 'Select Account Type', 'instagram-feed' ),
'connectAccount' => __( 'Connect an Instagram Account', 'instagram-feed' ),
'connectAccountDescription' => __( 'This does not give us permission to manage your Instagram account, it simply allows the plugin to see a list of them and retrieve their public content from the API.', 'instagram-feed' ),
'connect' => __( 'Connect', 'instagram-feed' ),
'alreadyHave' => __( 'Already have a API Token and Access Key for your account?', 'instagram-feed' ),
'addManuallyLink' => __( 'Add Account Manually', 'instagram-feed' ),
'selectAccount' => __( 'Select an Instagram Account', 'instagram-feed' ),
'showing' => __( 'Showing', 'instagram-feed' ),
'facebook' => __( 'Facebook', 'instagram-feed' ),
'businesses' => __( 'Businesses', 'instagram-feed' ),
'groups' => __( 'Groups', 'instagram-feed' ),
'connectedTo' => __( 'connected to', 'instagram-feed' ),
'addManually' => __( 'Add a Source Manually', 'instagram-feed' ),
'addSource' => __( 'Add Source', 'instagram-feed' ),
'sourceType' => __( 'Source Type', 'instagram-feed' ),
'accountID' => __( 'Instagram Account ID', 'instagram-feed' ),
'fAccountID' => __( 'Instagram Account ID', 'instagram-feed' ),
'eventAccessToken' => __( 'Event Access Token', 'instagram-feed' ),
'enterID' => __( 'Enter ID', 'instagram-feed' ),
'accessToken' => __( 'Instagram Access Token', 'instagram-feed' ),
'enterToken' => __( 'Enter Token', 'instagram-feed' ),
'addApp' => __( 'Add Instagram App to your group', 'instagram-feed' ),
'addAppDetails' => __( 'To get posts from your group, Instagram requires the "Smash Balloon Plugin" app to be added in your group settings. Just follow the directions here:', 'instagram-feed' ),
'addAppSteps' => array(
__( 'Go to your group settings page by ', 'instagram-feed' ),
sprintf( __( 'Search for "Smash Balloon" and select our app %1$s(see screenshot)%2$s', 'instagram-feed' ), '', '' ),
__( 'Click "Add" and you are done.', 'instagram-feed' )
),
'alreadyExists' => __( 'Account already exists', 'instagram-feed' ),
'alreadyExistsExplanation' => __( 'The Instagram account you added is already connected as a “Business” account. Would you like to replace it with a “Personal“ account? (Note: Personal accounts cannot be used to display Tagged or Hashtag feeds.)', 'instagram-feed' ),
'replaceWithPersonal' => __( 'Replace with Personal', 'instagram-feed' ),
'notAdmin' => __( 'For groups you are not an administrator of', 'instagram-feed' ),
'disclaimerMentions' => __( 'Due to Instagram’s limitations, you need to connect a business account to display a Mentions timeline', 'instagram-feed' ),
'disclaimerHashtag' => __( 'Due to Instagram’s limitations, you need to connect a business account to display a Hashtag feed', 'instagram-feed' ),
'notSureToolTip' => __( 'Select "Personal" if displaying a regular feed of posts, as this can display feeds from either a Personal or Business account. For displaying a Hashtag or Tagged feed, you must have an Instagram Business account. If needed, you can convert a Personal account into a Business account by following the directions {link}here{link}.', 'instagram-feed' )
),
'footer' => array(
'heading' => __( 'Add feeds for popular social platforms with our other plugins', 'instagram-feed' ),
),
'personal' => __( 'Personal', 'instagram-feed' ),
'business' => __( 'Business', 'instagram-feed' ),
'notSure' => __( "I'm not sure", 'instagram-feed' ),
);
}
/**
* For Other Platforms listed on the footer widget
*
* @return string
*
* @since 6.0
*/
public static function builder_svg_icons($icon = null)
{
// If the icon is set, load the SVG file and return it.
if (! empty($icon)) {
$icon_folder = explode('.', $icon);
if (count($icon_folder) > 1) {
$folder = $icon_folder[0];
$icon = $icon_folder[1];
$svg_path = SBI_PLUGIN_DIR . 'assets/svgs/' . $folder . '/' . $icon . '.svg';
} else {
$svg_path = SBI_PLUGIN_DIR . 'assets/svgs/' . $icon . '.svg';
}
if (is_file($svg_path)) {
return file_get_contents($svg_path);
}
}
return '';
}
public static function sb_other_plugins_modal() {
check_ajax_referer( 'sbi_nonce', 'sbi_nonce' );
if ( ! current_user_can( 'activate_plugins' ) || ! current_user_can( 'install_plugins' ) ) {
wp_send_json_error();
}
$plugin = isset( $_POST['plugin'] ) ? sanitize_key( $_POST['plugin'] ) : '';
$sb_other_plugins = self::install_plugins_popup();
$plugin = isset( $sb_other_plugins[ $plugin ] ) ? $sb_other_plugins[ $plugin ] : false;
if ( ! $plugin ) {
wp_send_json_error();
}
// Build the content for modals
$output = '
' . $plugin['description'] . '
'; $plugin_install_data = array( 'step' => 'install', 'action' => 'sbi_install_addon', 'nonce' => wp_create_nonce( 'sbi-admin' ), 'plugin' => $plugin['plugin'], 'download_plugin' => $plugin['download_plugin'], ); if ( ! $plugin['installed'] ) { $output .= sprintf( "