Instagram Feed - Version 2.9.6

Version Description

  • Fix: Periods and underscores in usernames when used as part of the shortcode would cause the load more button not to work.
  • Tweak: The WooCommerce orders post type will no longer be scanned for oembeds.
  • Tweak: An alert bubble will be added to the Instagram Feed menu item when there are new notifications available.
Download this release

Release Info

Developer smashballoon
Plugin Icon 128x128 Instagram Feed
Version 2.9.6
Comparing to
See all releases

Code changes from version 2.9.5 to 2.9.6

README.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: smashballoon, craig-at-smash-balloon
3
  Tags: Instagram, Instagram feed, Instagram photos, Instagram widget, Instagram gallery
4
  Requires at least: 3.4
5
  Tested up to: 5.8
6
- Stable tag: 2.9.5
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -331,6 +331,11 @@ We understand that sometimes you need help, have issues or just have questions.
331
  * Plus more customization options added all the time!
332
 
333
  == Changelog ==
 
 
 
 
 
334
  = 2.9.5 =
335
  * Fix: Fixed an issue when reconnecting a personal account.
336
  * Fix: Using showheader="true" in the shortcode would not work if the related setting was disabled on the settings page.
@@ -837,4 +842,4 @@ We understand that sometimes you need help, have issues or just have questions.
837
  * Fix: Fixed an issue with the Instagram Feed 'Load More' button opening an empty browser window in Firefox
838
 
839
  = 1.0 =
840
- * Launched the Instagram Feed plugin!
3
  Tags: Instagram, Instagram feed, Instagram photos, Instagram widget, Instagram gallery
4
  Requires at least: 3.4
5
  Tested up to: 5.8
6
+ Stable tag: 2.9.6
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
331
  * Plus more customization options added all the time!
332
 
333
  == Changelog ==
334
+ = 2.9.6 =
335
+ * Fix: Periods and underscores in usernames when used as part of the shortcode would cause the load more button not to work.
336
+ * Tweak: The WooCommerce orders post type will no longer be scanned for oembeds.
337
+ * Tweak: An alert bubble will be added to the Instagram Feed menu item when there are new notifications available.
338
+
339
  = 2.9.5 =
340
  * Fix: Fixed an issue when reconnecting a personal account.
341
  * Fix: Using showheader="true" in the shortcode would not work if the related setting was disabled on the settings page.
842
  * Fix: Fixed an issue with the Instagram Feed 'Load More' button opening an empty browser window in Firefox
843
 
844
  = 1.0 =
845
+ * Launched the Instagram Feed plugin!
css/admin-notifications.css CHANGED
@@ -168,5 +168,20 @@
168
  margin-top: 6px;
169
  }
170
  }
171
-
172
- /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2Nzcy9hZG1pbi1ub3RpZmljYXRpb25zLmNzcyIsInNvdXJjZXMiOlsiYXNzZXRzL3Njc3MvYWRtaW4tbm90aWZpY2F0aW9ucy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEFkbWluIG5vdGlmaWNhdGlvbiBzdHlsZXMuXG5cbiN3cGZvcm1zLW5vdGlmaWNhdGlvbnMge1xuXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0YmFja2dyb3VuZDogI0ZGRkZGRiAwIDAgbm8tcmVwZWF0IHBhZGRpbmctYm94O1xuXHRib3gtc2hhZG93OiAwcHggNXB4IDE1cHggIzAwMDAwMDBEO1xuXHRib3JkZXItcmFkaXVzOiA2cHg7XG5cdG9wYWNpdHk6IDE7XG5cdG1pbi1oZWlnaHQ6IDQ4cHg7XG5cdHBhZGRpbmc6IDE1cHggMTAycHggMTVweCA3MnB4O1xuXHRtYXJnaW46IDAgMCAxNHB4IDA7XG5cblx0KiB7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxuXG5cdC5iZWxsIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAxNXB4O1xuXHRcdGxlZnQ6IDE1cHg7XG5cdFx0d2lkdGg6IDQycHg7XG5cdFx0aGVpZ2h0OiA0OHB4O1xuXHR9XG5cblx0Lm1lc3NhZ2VzIHtcblx0XHQubWVzc2FnZSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0XHQmLmN1cnJlbnQge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblxuXHRcdFx0LnRpdGxlIHtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTdweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0Y29sb3I6ICM0NDQ7XG5cdFx0XHR9XG5cblx0XHRcdC5jb250ZW50IHtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMjBweDtcblx0XHRcdFx0bWFyZ2luOiA2cHggMCA0MHB4IDA7XG5cdFx0XHR9XG5cblx0XHRcdC5idXR0b25zIHtcblx0XHRcdFx0bWFyZ2luOiAtMzBweCA4MHB4IDAgMDtcblxuXHRcdFx0XHRhIHtcblx0XHRcdFx0XHRtYXJnaW46IDAgNnB4IDAgMDtcblx0XHRcdFx0XHRwYWRkaW5nOiA4cHggMTBweDtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMTNweDtcblx0XHRcdFx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0XHRcdFx0bWluLWhlaWdodDogdW5zZXQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuYnV0dG9uLXNlY29uZGFyeSB7XG5cdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgIzAwNzFBMTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5kaXNtaXNzIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAxNXB4O1xuXHRcdHJpZ2h0OiAxNXB4O1xuXHRcdHdpZHRoOiAxNnB4O1xuXHRcdGhlaWdodDogMTZweDtcblx0XHRjb2xvcjogIzcyNzc3Qztcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdGxpbmUtaGVpZ2h0OiAxNnB4O1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogI2RjMzIzMjtcblx0XHR9XG5cdH1cblxuXHQubmF2aWdhdGlvbiB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJvdHRvbTogMTVweDtcblx0XHRyaWdodDogMTVweDtcblx0XHR3aWR0aDogNjNweDtcblx0XHRoZWlnaHQ6IDMwcHg7XG5cblx0XHRhIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0d2lkdGg6IDMwcHg7XG5cdFx0XHRoZWlnaHQ6IDMwcHg7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjN0U4OTkzO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0Zm9udC1zaXplOiA4cHg7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDMwcHg7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0Y29sb3I6ICM0MTQ1NEE7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5wcmV2IHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdH1cblxuXHRcdC5uZXh0IHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHR9XG5cblx0XHQuZGlzYWJsZWQge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjZGRkZGRkO1xuXHRcdFx0Y29sb3I6ICNBMEE1QUE7XG5cdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuXG5cdCN3cGZvcm1zLW5vdGlmaWNhdGlvbnMge1xuXHRcdHBhZGRpbmc6IDE1cHggMTVweCAxNXB4IDcycHg7XG5cblx0XHQubWVzc2FnZXMge1xuXG5cdFx0XHQubWVzc2FnZSB7XG5cblx0XHRcdFx0LnRpdGxlIHtcblx0XHRcdFx0XHRtYXJnaW46IDAgMzBweCAwIDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuY29udGVudCB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAyNHB4XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuYnV0dG9ucyB7XG5cdFx0XHRcdFx0bWFyZ2luOiAtMzBweCA4MHB4IDAgMDtcblxuXHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0LmJ1dHRvbi1zZWNvbmRhcnkge1xuXHRcdFx0XHRcdFx0bWFyZ2luLXRvcDogNnB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxBQUFBLHNCQUFzQixDQUFDO0VBRXRCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFVBQVUsRUFBRSxpQ0FBaUM7RUFDN0MsVUFBVSxFQUFFLHNCQUFzQjtFQUNsQyxhQUFhLEVBQUUsR0FBRztFQUNsQixPQUFPLEVBQUUsQ0FBQztFQUNWLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLE9BQU8sRUFBRSxvQkFBb0I7RUFDN0IsTUFBTSxFQUFFLFVBQVU7Q0FxSGxCOztBQTlIRCxBQVdDLHNCQVhxQixDQVdyQixDQUFDLENBQUM7RUFDRCxVQUFVLEVBQUUsVUFBVTtDQUN0Qjs7QUFiRixBQWVDLHNCQWZxQixDQWVyQixLQUFLLENBQUM7RUFDTCxRQUFRLEVBQUUsUUFBUTtFQUNsQixHQUFHLEVBQUUsSUFBSTtFQUNULElBQUksRUFBRSxJQUFJO0VBQ1YsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSTtDQUNaOztBQXJCRixBQXdCRSxzQkF4Qm9CLENBdUJyQixTQUFTLENBQ1IsUUFBUSxDQUFDO0VBQ1IsT0FBTyxFQUFFLElBQUk7Q0FvQ2I7O0FBN0RILEFBMkJHLHNCQTNCbUIsQ0F1QnJCLFNBQVMsQ0FDUixRQUFRLEFBR04sUUFBUSxDQUFDO0VBQ1QsT0FBTyxFQUFFLEtBQUs7Q0FDZDs7QUE3QkosQUErQkcsc0JBL0JtQixDQXVCckIsU0FBUyxDQUNSLFFBQVEsQ0FPUCxNQUFNLENBQUM7RUFDTixXQUFXLEVBQUUsSUFBSTtFQUNqQixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLE1BQU0sRUFBRSxDQUFDO0VBQ1QsS0FBSyxFQUFFLElBQUk7Q0FDWDs7QUFyQ0osQUF1Q0csc0JBdkNtQixDQXVCckIsU0FBUyxDQUNSLFFBQVEsQ0FlUCxRQUFRLENBQUM7RUFDUixXQUFXLEVBQUUsTUFBTTtFQUNuQixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLE1BQU0sRUFBRSxZQUFZO0NBQ3BCOztBQTVDSixBQThDRyxzQkE5Q21CLENBdUJyQixTQUFTLENBQ1IsUUFBUSxDQXNCUCxRQUFRLENBQUM7RUFDUixNQUFNLEVBQUUsY0FBYztDQWF0Qjs7QUE1REosQUFpREksc0JBakRrQixDQXVCckIsU0FBUyxDQUNSLFFBQVEsQ0FzQlAsUUFBUSxDQUdQLENBQUMsQ0FBQztFQUNELE1BQU0sRUFBRSxTQUFTO0VBQ2pCLE9BQU8sRUFBRSxRQUFRO0VBQ2pCLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsVUFBVSxFQUFFLEtBQUs7Q0FDakI7O0FBdkRMLEFBeURJLHNCQXpEa0IsQ0F1QnJCLFNBQVMsQ0FDUixRQUFRLENBc0JQLFFBQVEsQ0FXUCxpQkFBaUIsQ0FBQztFQUNqQixNQUFNLEVBQUUsaUJBQWlCO0NBQ3pCOztBQTNETCxBQWdFQyxzQkFoRXFCLENBZ0VyQixRQUFRLENBQUM7RUFDUixRQUFRLEVBQUUsUUFBUTtFQUNsQixHQUFHLEVBQUUsSUFBSTtFQUNULEtBQUssRUFBRSxJQUFJO0VBQ1gsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSTtFQUNaLEtBQUssRUFBRSxPQUFPO0VBQ2QsU0FBUyxFQUFFLElBQUk7RUFDZixNQUFNLEVBQUUsT0FBTztFQUNmLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLFdBQVcsRUFBRSxJQUFJO0NBS2pCOztBQWhGRixBQTZFRSxzQkE3RW9CLENBZ0VyQixRQUFRLEFBYU4sTUFBTSxDQUFDO0VBQ1AsS0FBSyxFQUFFLE9BQU87Q0FDZDs7QUEvRUgsQUFrRkMsc0JBbEZxQixDQWtGckIsV0FBVyxDQUFDO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsTUFBTSxFQUFFLElBQUk7RUFDWixLQUFLLEVBQUUsSUFBSTtFQUNYLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7Q0FzQ1o7O0FBN0hGLEFBeUZFLHNCQXpGb0IsQ0FrRnJCLFdBQVcsQ0FPVixDQUFDLENBQUM7RUFDRCxPQUFPLEVBQUUsS0FBSztFQUNkLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7RUFDWixNQUFNLEVBQUUsaUJBQWlCO0VBQ3pCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFNBQVMsRUFBRSxHQUFHO0VBQ2QsVUFBVSxFQUFFLE1BQU07RUFDbEIsY0FBYyxFQUFFLE1BQU07RUFDdEIsV0FBVyxFQUFFLElBQUk7RUFDakIsTUFBTSxFQUFFLE9BQU87RUFDZixnQkFBZ0IsRUFBRSxPQUFPO0VBQ3pCLEtBQUssRUFBRSxPQUFPO0NBS2Q7O0FBMUdILEFBdUdHLHNCQXZHbUIsQ0FrRnJCLFdBQVcsQ0FPVixDQUFDLEFBY0MsTUFBTSxDQUFDO0VBQ1AsZ0JBQWdCLEVBQUUsT0FBTztDQUN6Qjs7QUF6R0osQUE0R0Usc0JBNUdvQixDQWtGckIsV0FBVyxDQTBCVixLQUFLLENBQUM7RUFDTCxLQUFLLEVBQUUsSUFBSTtDQUNYOztBQTlHSCxBQWdIRSxzQkFoSG9CLENBa0ZyQixXQUFXLENBOEJWLEtBQUssQ0FBQztFQUNMLEtBQUssRUFBRSxLQUFLO0NBQ1o7O0FBbEhILEFBb0hFLHNCQXBIb0IsQ0FrRnJCLFdBQVcsQ0FrQ1YsU0FBUyxDQUFDO0VBQ1QsWUFBWSxFQUFFLE9BQU87RUFDckIsS0FBSyxFQUFFLE9BQU87RUFDZCxNQUFNLEVBQUUsT0FBTztDQUtmOztBQTVISCxBQXlIRyxzQkF6SG1CLENBa0ZyQixXQUFXLENBa0NWLFNBQVMsQUFLUCxNQUFNLENBQUM7RUFDUCxnQkFBZ0IsRUFBRSxPQUFPO0NBQ3pCOztBQUtKLE1BQU0sQ0FBQyxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7RUFFbEMsQUFBQSxzQkFBc0IsQ0FBQztJQUN0QixPQUFPLEVBQUUsbUJBQW1CO0dBNkI1QjtFQTlCRCxBQU9HLHNCQVBtQixDQUdyQixTQUFTLENBRVIsUUFBUSxDQUVQLE1BQU0sQ0FBQztJQUNOLE1BQU0sRUFBRSxVQUFVO0dBQ2xCO0VBVEosQUFXRyxzQkFYbUIsQ0FHckIsU0FBUyxDQUVSLFFBQVEsQ0FNUCxRQUFRLENBQUM7SUFDUixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxJQUNkO0dBQUM7RUFkSixBQWdCRyxzQkFoQm1CLENBR3JCLFNBQVMsQ0FFUixRQUFRLENBV1AsUUFBUSxDQUFDO0lBQ1IsTUFBTSxFQUFFLGNBQWM7R0FVdEI7RUEzQkosQUFtQkksc0JBbkJrQixDQUdyQixTQUFTLENBRVIsUUFBUSxDQVdQLFFBQVEsQ0FHUCxDQUFDLENBQUM7SUFDRCxNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxLQUFLO0dBQ2Q7RUF0QkwsQUF3Qkksc0JBeEJrQixDQUdyQixTQUFTLENBRVIsUUFBUSxDQVdQLFFBQVEsQ0FRUCxpQkFBaUIsQ0FBQztJQUNqQixVQUFVLEVBQUUsR0FBRztHQUNmIn0= */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
  margin-top: 6px;
169
  }
170
  }
171
+ .sbi-notice-alert {
172
+ display: inline-block;
173
+ position: absolute;
174
+ vertical-align: top;
175
+ box-sizing: border-box;
176
+ margin: 1px 0 0 4px;
177
+ padding: 0 5px;
178
+ min-width: 18px;
179
+ height: 18px;
180
+ border-radius: 9px;
181
+ background-color: #d63638;
182
+ color: #fff;
183
+ font-size: 11px;
184
+ line-height: 1.6;
185
+ text-align: center;
186
+ z-index: 26;
187
+ }
css/sb-instagram-2-2.css CHANGED
@@ -47,12 +47,10 @@
47
 
48
  /* Items */
49
  #sb_instagram #sbi_images .sbi_item{
50
- display: -moz-inline-stack;
51
  display: inline-block;
52
  float: left;
53
  vertical-align: top;
54
  zoom: 1;
55
- *display: inline;
56
 
57
  padding: inherit !important;
58
  margin: 0 !important;
@@ -67,7 +65,6 @@
67
  -webkit-transition: all 0.5s ease;
68
  -moz-transition: all 0.5s ease;
69
  -o-transition: all 0.5s ease;
70
- -ms-transition: all 0.5s ease;
71
  transition: all 0.5s ease;
72
  }
73
  /* Transition items in */
@@ -148,11 +145,9 @@
148
  font-size: 12px;
149
  line-height: 1.1;
150
 
151
- display: -moz-inline-stack;
152
  display: inline-block;
153
  vertical-align: top;
154
  zoom: 1;
155
- *display: inline;
156
  }
157
  #sb_instagram .sbi_link .sbi_lightbox_link{
158
  padding-bottom: 5px;
@@ -326,7 +321,6 @@
326
  opacity: .9;
327
  -webkit-transition: background .6s linear,color .6s linear;
328
  -moz-transition: background .6s linear,color .6s linear;
329
- -ms-transition: background .6s linear,color .6s linear;
330
  -o-transition: background .6s linear,color .6s linear;
331
  transition: background .6s linear,color .6s linear
332
  }
@@ -336,7 +330,6 @@
336
  opacity: 1;
337
  -webkit-transition: background .2s linear,color .2s linear;
338
  -moz-transition: background .2s linear,color .2s linear;
339
- -ms-transition: background .2s linear,color .2s linear;
340
  -o-transition: background .2s linear,color .2s linear;
341
  transition: background .2s linear,color .2s linear
342
  }
@@ -499,7 +492,6 @@
499
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
500
  filter: alpha(opacity=0);
501
  -moz-opacity: 0;
502
- -khtml-opacity: 0;
503
  opacity: 0;
504
  border-radius: 40px;
505
  transition: opacity 0.2s;
@@ -578,16 +570,13 @@
578
  }
579
  #sb_instagram #sbi_load .sbi_load_btn,
580
  #sb_instagram .sbi_follow_btn a{
581
- display: -moz-inline-stack;
582
  display: inline-block;
583
  vertical-align: top;
584
  zoom: 1;
585
- *display: inline;
586
 
587
  padding: 7px 14px;
588
  margin: 5px auto 0 auto;
589
  background: #333;
590
- color: #eee;
591
  border: none;
592
  color: #fff;
593
  text-decoration: none;
@@ -607,11 +596,9 @@
607
  }
608
  /* Follow button */
609
  #sb_instagram .sbi_follow_btn{
610
- display: -moz-inline-stack;
611
  display: inline-block;
612
  vertical-align: top;
613
  zoom: 1;
614
- *display: inline;
615
  text-align: center;
616
  }
617
  #sb_instagram .sbi_follow_btn.sbi_top{
47
 
48
  /* Items */
49
  #sb_instagram #sbi_images .sbi_item{
 
50
  display: inline-block;
51
  float: left;
52
  vertical-align: top;
53
  zoom: 1;
 
54
 
55
  padding: inherit !important;
56
  margin: 0 !important;
65
  -webkit-transition: all 0.5s ease;
66
  -moz-transition: all 0.5s ease;
67
  -o-transition: all 0.5s ease;
 
68
  transition: all 0.5s ease;
69
  }
70
  /* Transition items in */
145
  font-size: 12px;
146
  line-height: 1.1;
147
 
 
148
  display: inline-block;
149
  vertical-align: top;
150
  zoom: 1;
 
151
  }
152
  #sb_instagram .sbi_link .sbi_lightbox_link{
153
  padding-bottom: 5px;
321
  opacity: .9;
322
  -webkit-transition: background .6s linear,color .6s linear;
323
  -moz-transition: background .6s linear,color .6s linear;
 
324
  -o-transition: background .6s linear,color .6s linear;
325
  transition: background .6s linear,color .6s linear
326
  }
330
  opacity: 1;
331
  -webkit-transition: background .2s linear,color .2s linear;
332
  -moz-transition: background .2s linear,color .2s linear;
 
333
  -o-transition: background .2s linear,color .2s linear;
334
  transition: background .2s linear,color .2s linear
335
  }
492
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
493
  filter: alpha(opacity=0);
494
  -moz-opacity: 0;
 
495
  opacity: 0;
496
  border-radius: 40px;
497
  transition: opacity 0.2s;
570
  }
571
  #sb_instagram #sbi_load .sbi_load_btn,
572
  #sb_instagram .sbi_follow_btn a{
 
573
  display: inline-block;
574
  vertical-align: top;
575
  zoom: 1;
 
576
 
577
  padding: 7px 14px;
578
  margin: 5px auto 0 auto;
579
  background: #333;
 
580
  border: none;
581
  color: #fff;
582
  text-decoration: none;
596
  }
597
  /* Follow button */
598
  #sb_instagram .sbi_follow_btn{
 
599
  display: inline-block;
600
  vertical-align: top;
601
  zoom: 1;
 
602
  text-align: center;
603
  }
604
  #sb_instagram .sbi_follow_btn.sbi_top{
css/sb-instagram-admin.css CHANGED
@@ -94,13 +94,11 @@
94
  padding: 0;
95
  }
96
  #sbi_admin .sbi-success {
97
- position: relative;
98
  top: -1px;
99
 
100
  background: #68a30b;
101
  color: #fff;
102
- font-size: 16px;
103
- padding: 6px;
104
  font-size: 13px;
105
  text-transform: capitalize;
106
  padding: 4px 8px 5px 8px;
@@ -143,11 +141,9 @@
143
  width: 95px;
144
  padding-top: 5px;
145
 
146
- display: -moz-inline-stack;
147
  display: inline-block;
148
  vertical-align: top;
149
  zoom: 1;
150
- *display: inline;
151
  }
152
 
153
  /* Config info */
@@ -198,12 +194,10 @@
198
 
199
  /* License */
200
  #sbi_admin .sbi_license_status{
201
- display: -moz-inline-stack;
202
  display: inline-block;
203
  vertical-align: top;
204
  zoom: 1;
205
- *display: inline;
206
-
207
  padding: 5px;
208
  }
209
 
@@ -306,7 +300,7 @@
306
  #sbi_admin .sbi_shortcode_symbol{
307
  position: absolute;
308
  right: -24px;
309
- bottom: 0px;
310
  padding: 2px 4px 3px 3px;
311
  width: auto;
312
  font-size: 11px;
@@ -669,10 +663,6 @@
669
  margin: 25px 0 5px 0;
670
  }
671
 
672
- #sbi_admin .sbi_feed_type .sbi_note{
673
- /*display: none;*/
674
- }
675
-
676
  #sbi_admin .sbi-pro-notice,
677
  #sbi_admin .sbi-pro-notice img{
678
  display: block;
@@ -768,7 +758,6 @@
768
  .sbi_warning {
769
  position: relative;
770
  display: inline-block;
771
- border: 1px solid #ccc;
772
  font-size: 12px;
773
  padding: 4px 4px 4px 8px;
774
  vertical-align: top;
@@ -1179,9 +1168,7 @@
1179
  padding: 40px 40px 25px 40px;
1180
  }
1181
 
1182
- /* Pro 3.0 Styles */
1183
  .sbi_layout_cell {
1184
- padding: 0;
1185
  display: inline-block;
1186
  float: left;
1187
  width: 100px;
@@ -1340,7 +1327,6 @@
1340
  background: rgba(255,255,255,0.8);
1341
  border-radius: 5px;
1342
  box-shadow: 0 0 5px 0 rgba(0,0,0,0.1);
1343
- color: #333;
1344
  z-index: 99;
1345
  font-size: 14px;
1346
  color: #666;
@@ -1383,7 +1369,6 @@
1383
 
1384
  background: #333;
1385
  color: #eee;
1386
- width: 90%;
1387
  padding: 8px 10px 10px 10px;
1388
  border-radius: 3px;
1389
  line-height: 1.3;
94
  padding: 0;
95
  }
96
  #sbi_admin .sbi-success {
97
+ position: relative;
98
  top: -1px;
99
 
100
  background: #68a30b;
101
  color: #fff;
 
 
102
  font-size: 13px;
103
  text-transform: capitalize;
104
  padding: 4px 8px 5px 8px;
141
  width: 95px;
142
  padding-top: 5px;
143
 
 
144
  display: inline-block;
145
  vertical-align: top;
146
  zoom: 1;
 
147
  }
148
 
149
  /* Config info */
194
 
195
  /* License */
196
  #sbi_admin .sbi_license_status{
 
197
  display: inline-block;
198
  vertical-align: top;
199
  zoom: 1;
200
+
 
201
  padding: 5px;
202
  }
203
 
300
  #sbi_admin .sbi_shortcode_symbol{
301
  position: absolute;
302
  right: -24px;
303
+ bottom: 0;
304
  padding: 2px 4px 3px 3px;
305
  width: auto;
306
  font-size: 11px;
663
  margin: 25px 0 5px 0;
664
  }
665
 
 
 
 
 
666
  #sbi_admin .sbi-pro-notice,
667
  #sbi_admin .sbi-pro-notice img{
668
  display: block;
758
  .sbi_warning {
759
  position: relative;
760
  display: inline-block;
 
761
  font-size: 12px;
762
  padding: 4px 4px 4px 8px;
763
  vertical-align: top;
1168
  padding: 40px 40px 25px 40px;
1169
  }
1170
 
 
1171
  .sbi_layout_cell {
 
1172
  display: inline-block;
1173
  float: left;
1174
  width: 100px;
1327
  background: rgba(255,255,255,0.8);
1328
  border-radius: 5px;
1329
  box-shadow: 0 0 5px 0 rgba(0,0,0,0.1);
 
1330
  z-index: 99;
1331
  font-size: 14px;
1332
  color: #666;
1369
 
1370
  background: #333;
1371
  color: #eee;
 
1372
  padding: 8px 10px 10px 10px;
1373
  border-radius: 3px;
1374
  line-height: 1.3;
css/sbi-styles.css CHANGED
@@ -47,12 +47,10 @@
47
 
48
  /* Items */
49
  #sb_instagram #sbi_images .sbi_item{
50
- display: -moz-inline-stack;
51
  display: inline-block;
52
  float: left;
53
  vertical-align: top;
54
  zoom: 1;
55
- *display: inline;
56
 
57
  padding: inherit !important;
58
  margin: 0 !important;
@@ -67,7 +65,6 @@
67
  -webkit-transition: all 0.5s ease;
68
  -moz-transition: all 0.5s ease;
69
  -o-transition: all 0.5s ease;
70
- -ms-transition: all 0.5s ease;
71
  transition: all 0.5s ease;
72
  }
73
  /* Transition items in */
@@ -148,11 +145,9 @@
148
  font-size: 12px;
149
  line-height: 1.1;
150
 
151
- display: -moz-inline-stack;
152
  display: inline-block;
153
  vertical-align: top;
154
  zoom: 1;
155
- *display: inline;
156
  }
157
  #sb_instagram .sbi_link .sbi_lightbox_link{
158
  padding-bottom: 5px;
@@ -326,7 +321,6 @@
326
  opacity: .9;
327
  -webkit-transition: background .6s linear,color .6s linear;
328
  -moz-transition: background .6s linear,color .6s linear;
329
- -ms-transition: background .6s linear,color .6s linear;
330
  -o-transition: background .6s linear,color .6s linear;
331
  transition: background .6s linear,color .6s linear
332
  }
@@ -336,7 +330,6 @@
336
  opacity: 1;
337
  -webkit-transition: background .2s linear,color .2s linear;
338
  -moz-transition: background .2s linear,color .2s linear;
339
- -ms-transition: background .2s linear,color .2s linear;
340
  -o-transition: background .2s linear,color .2s linear;
341
  transition: background .2s linear,color .2s linear
342
  }
@@ -499,7 +492,6 @@
499
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
500
  filter: alpha(opacity=0);
501
  -moz-opacity: 0;
502
- -khtml-opacity: 0;
503
  opacity: 0;
504
  border-radius: 40px;
505
  transition: opacity 0.2s;
@@ -578,16 +570,13 @@
578
  }
579
  #sb_instagram #sbi_load .sbi_load_btn,
580
  #sb_instagram .sbi_follow_btn a{
581
- display: -moz-inline-stack;
582
  display: inline-block;
583
  vertical-align: top;
584
  zoom: 1;
585
- *display: inline;
586
 
587
  padding: 7px 14px;
588
  margin: 5px auto 0 auto;
589
  background: #333;
590
- color: #eee;
591
  border: none;
592
  color: #fff;
593
  text-decoration: none;
@@ -607,11 +596,9 @@
607
  }
608
  /* Follow button */
609
  #sb_instagram .sbi_follow_btn{
610
- display: -moz-inline-stack;
611
  display: inline-block;
612
  vertical-align: top;
613
  zoom: 1;
614
- *display: inline;
615
  text-align: center;
616
  }
617
  #sb_instagram .sbi_follow_btn.sbi_top{
47
 
48
  /* Items */
49
  #sb_instagram #sbi_images .sbi_item{
 
50
  display: inline-block;
51
  float: left;
52
  vertical-align: top;
53
  zoom: 1;
 
54
 
55
  padding: inherit !important;
56
  margin: 0 !important;
65
  -webkit-transition: all 0.5s ease;
66
  -moz-transition: all 0.5s ease;
67
  -o-transition: all 0.5s ease;
 
68
  transition: all 0.5s ease;
69
  }
70
  /* Transition items in */
145
  font-size: 12px;
146
  line-height: 1.1;
147
 
 
148
  display: inline-block;
149
  vertical-align: top;
150
  zoom: 1;
 
151
  }
152
  #sb_instagram .sbi_link .sbi_lightbox_link{
153
  padding-bottom: 5px;
321
  opacity: .9;
322
  -webkit-transition: background .6s linear,color .6s linear;
323
  -moz-transition: background .6s linear,color .6s linear;
 
324
  -o-transition: background .6s linear,color .6s linear;
325
  transition: background .6s linear,color .6s linear
326
  }
330
  opacity: 1;
331
  -webkit-transition: background .2s linear,color .2s linear;
332
  -moz-transition: background .2s linear,color .2s linear;
 
333
  -o-transition: background .2s linear,color .2s linear;
334
  transition: background .2s linear,color .2s linear
335
  }
492
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
493
  filter: alpha(opacity=0);
494
  -moz-opacity: 0;
 
495
  opacity: 0;
496
  border-radius: 40px;
497
  transition: opacity 0.2s;
570
  }
571
  #sb_instagram #sbi_load .sbi_load_btn,
572
  #sb_instagram .sbi_follow_btn a{
 
573
  display: inline-block;
574
  vertical-align: top;
575
  zoom: 1;
 
576
 
577
  padding: 7px 14px;
578
  margin: 5px auto 0 auto;
579
  background: #333;
 
580
  border: none;
581
  color: #fff;
582
  text-decoration: none;
596
  }
597
  /* Follow button */
598
  #sb_instagram .sbi_follow_btn{
 
599
  display: inline-block;
600
  vertical-align: top;
601
  zoom: 1;
 
602
  text-align: center;
603
  }
604
  #sb_instagram .sbi_follow_btn.sbi_top{
inc/admin/actions.php CHANGED
@@ -412,48 +412,14 @@ function sbi_check_notice_dismiss() {
412
  }
413
  }
414
 
415
- function sbi_get_connected_accounts_data( $sb_instagram_at ) {
416
- $sbi_options = get_option( 'sb_instagram_settings' );
417
- $return = array();
418
- $return['connected_accounts'] = isset( $sbi_options['connected_accounts'] ) ? $sbi_options['connected_accounts'] : array();
419
-
420
- if ( ! empty( $return['connected_accounts'] ) ) {
421
- $return['access_token'] = '';
422
- } else {
423
- $return['access_token'] = $sb_instagram_at;
424
- }
425
-
426
- if ( ! sbi_is_after_deprecation_deadline() && empty( $connected_accounts ) && ! empty( $sb_instagram_at ) ) {
427
- $tokens = explode(',', $sb_instagram_at );
428
- $user_ids = array();
429
-
430
- foreach ( $tokens as $token ) {
431
- $account = sbi_account_data_for_token( $token );
432
- if ( isset( $account['is_valid'] ) ) {
433
- $split = explode( '.', $token );
434
- $return['connected_accounts'][ $split[0] ] = array(
435
- 'access_token' => sbi_get_parts( $token ),
436
- 'user_id' => $split[0],
437
- 'username' => '',
438
- 'is_valid' => true,
439
- 'last_checked' => time(),
440
- 'profile_picture' => ''
441
- );
442
- $user_ids[] = $split[0];
443
- }
444
-
445
- }
446
-
447
- $sbi_options['connected_accounts'] = $return['connected_accounts'];
448
- $sbi_options['sb_instagram_at'] = '';
449
- $sbi_options['sb_instagram_user_id'] = $user_ids;
450
-
451
- $return['user_ids'] = $user_ids;
452
-
453
- update_option( 'sb_instagram_settings', $sbi_options );
454
- }
455
 
456
- return $return;
457
  }
458
 
459
  function sbi_connect_basic_account( $new_account_details ) {
@@ -678,20 +644,20 @@ function sbi_get_business_account_connection_modal( $sb_instagram_user_id ) {
678
  ?>
679
  <?php if( empty($pages_data_arr->data) ) : ?>
680
  <span id="sbi-bus-account-error">
681
- <p style="margin-top: 5px;"><b style="font-size: 16px">Couldn't find Business Profile</b><br />
682
- Uh oh. It looks like this Facebook account is not currently connected to an Instagram Business profile. Please check that you are logged into the <a href="https://www.facebook.com/" target="_blank">Facebook account</a> in this browser which is associated with your Instagram Business Profile.</p>
683
- <p><b style="font-size: 16px">Why do I need a Business Profile?</b><br />
684
  A Business Profile is only required if you are displaying a Hashtag feed. If you want to display a regular User feed then you can do this by selecting to connect a Personal account instead. For directions on how to convert your Personal profile into a Business profile please <a href="https://smashballoon.com/instagram-business-profiles" target="_blank">see here</a>.</p>
685
  </span>
686
 
687
  <?php elseif ( $num_accounts === 0 ): ?>
688
  <span id="sbi-bus-account-error">
689
- <p style="margin-top: 5px;"><b style="font-size: 16px">Couldn't find Business Profile</b><br />
690
- Uh oh. It looks like this Facebook account is not currently connected to an Instagram Business profile. Please check that you are logged into the <a href="https://www.facebook.com/" target="_blank">Facebook account</a> in this browser which is associated with your Instagram Business Profile.</p>
691
  <p>If you are, in fact, logged-in to the correct account please make sure you have Instagram accounts connected with your Facebook account by following <a href="https://smashballoon.com/reconnecting-an-instagram-business-profile/" target="_blank">this FAQ</a></p>
692
  </span>
693
  <?php else: ?>
694
- <p class="sbi-managed-page-intro"><b style="font-size: 16px;">Instagram Business profiles for this account</b><br /><i style="color: #666;">Note: In order to display a Hashtag feed you first need to select a Business profile below.</i></p>
695
  <?php if ( $num_accounts > 1 ) : ?>
696
  <div class="sbi-managed-page-select-all"><input type="checkbox" id="sbi-select-all" class="sbi-select-all"><label for="sbi-select-all">Select All</label></div>
697
  <?php endif; ?>
@@ -738,7 +704,7 @@ function sbi_get_business_account_connection_modal( $sb_instagram_user_id ) {
738
  <input id="sbi-<?php echo esc_attr( $instagram_business_id ); ?>" type="checkbox" name="sbi_managed_pages[]" value="<?php echo esc_attr( $instagram_account_info ); ?>">
739
  </div>
740
  <div class="sbi-managed-page-details">
741
- <label for="sbi-<?php echo esc_attr( $instagram_business_id ); ?>"><img class="sbi-page-avatar" border="0" height="50" width="50" src="<?php echo esc_url( $instagram_biz_img ); ?>"><b style="font-size: 16px;"><?php echo esc_html( $instagram_account_data->name ); ?></b>
742
  <br />@<?php echo esc_html( $instagram_account_data->username); ?><span style="font-size: 11px; margin-left: 5px;">(<?php echo esc_html( $instagram_business_id ); ?>)</span></label>
743
  </div>
744
  </div>
@@ -749,7 +715,7 @@ function sbi_get_business_account_connection_modal( $sb_instagram_user_id ) {
749
  <?php endforeach; ?>
750
 
751
  </div> <!-- end scrollable -->
752
- <p style="font-size: 11px; line-height: 1.5; margin-bottom: 0;"><i style="color: #666;">*<?php echo sprintf( __( 'Changing the password, updating privacy settings, or removing page admins for the related Facebook page may require %smanually reauthorizing our app%s to reconnect an account.', 'instagram-feed' ), '<a href="https://smashballoon.com/reauthorizing-our-instagram-facebook-app/" target="_blank" rel="noopener noreferrer">', '</a>' ); ?></i></p>
753
 
754
  <button id="sbi-connect-business-accounts" class="button button-primary" disabled="disabled" style="margin-top: 20px;"><?php _e( 'Connect Accounts', 'instagram-feed' ); ?></button>
755
 
412
  }
413
  }
414
 
415
+ /**
416
+ * @return array
417
+ * @deprecated
418
+ */
419
+ function sbi_get_connected_accounts_data() {
420
+ $sbi_options = get_option( 'sb_instagram_settings', array() );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
421
 
422
+ return isset( $sbi_options['connected_accounts'] ) ? $sbi_options['connected_accounts'] : array();
423
  }
424
 
425
  function sbi_connect_basic_account( $new_account_details ) {
644
  ?>
645
  <?php if( empty($pages_data_arr->data) ) : ?>
646
  <span id="sbi-bus-account-error">
647
+ <p style="margin-top: 5px;"><strong style="font-size: 16px">Couldn't find Business Profile</strong><br />
648
+ Uh oh. It looks like this Facebook account is not currently connected to an Instagram Business profile. Please check that you are logged into the <a href="https://www.facebook.com/" target="_blank" rel="noopener noreferrer">Facebook account</a> in this browser which is associated with your Instagram Business Profile.</p>
649
+ <p><strong style="font-size: 16px">Why do I need a Business Profile?</strong><br />
650
  A Business Profile is only required if you are displaying a Hashtag feed. If you want to display a regular User feed then you can do this by selecting to connect a Personal account instead. For directions on how to convert your Personal profile into a Business profile please <a href="https://smashballoon.com/instagram-business-profiles" target="_blank">see here</a>.</p>
651
  </span>
652
 
653
  <?php elseif ( $num_accounts === 0 ): ?>
654
  <span id="sbi-bus-account-error">
655
+ <p style="margin-top: 5px;"><strong style="font-size: 16px">Couldn't find Business Profile</strong><br />
656
+ Uh oh. It looks like this Facebook account is not currently connected to an Instagram Business profile. Please check that you are logged into the <a href="https://www.facebook.com/" target="_blank" rel="noopener noreferrer">Facebook account</a> in this browser which is associated with your Instagram Business Profile.</p>
657
  <p>If you are, in fact, logged-in to the correct account please make sure you have Instagram accounts connected with your Facebook account by following <a href="https://smashballoon.com/reconnecting-an-instagram-business-profile/" target="_blank">this FAQ</a></p>
658
  </span>
659
  <?php else: ?>
660
+ <p class="sbi-managed-page-intro"><strong style="font-size: 16px;">Instagram Business profiles for this account</strong><br /><em style="color: #666;">Note: In order to display a Hashtag feed you first need to select a Business profile below.</em></p>
661
  <?php if ( $num_accounts > 1 ) : ?>
662
  <div class="sbi-managed-page-select-all"><input type="checkbox" id="sbi-select-all" class="sbi-select-all"><label for="sbi-select-all">Select All</label></div>
663
  <?php endif; ?>
704
  <input id="sbi-<?php echo esc_attr( $instagram_business_id ); ?>" type="checkbox" name="sbi_managed_pages[]" value="<?php echo esc_attr( $instagram_account_info ); ?>">
705
  </div>
706
  <div class="sbi-managed-page-details">
707
+ <label for="sbi-<?php echo esc_attr( $instagram_business_id ); ?>"><img class="sbi-page-avatar" border="0" height="50" width="50" src="<?php echo esc_url( $instagram_biz_img ); ?>" alt="<?php echo esc_attr( $instagram_business_id ); ?>"><strong style="font-size: 16px;"><?php echo esc_html( $instagram_account_data->name ); ?></strong>
708
  <br />@<?php echo esc_html( $instagram_account_data->username); ?><span style="font-size: 11px; margin-left: 5px;">(<?php echo esc_html( $instagram_business_id ); ?>)</span></label>
709
  </div>
710
  </div>
715
  <?php endforeach; ?>
716
 
717
  </div> <!-- end scrollable -->
718
+ <p style="font-size: 11px; line-height: 1.5; margin-bottom: 0;"><em style="color: #666;">*<?php echo sprintf( __( 'Changing the password, updating privacy settings, or removing page admins for the related Facebook page may require %smanually reauthorizing our app%s to reconnect an account.', 'instagram-feed' ), '<a href="https://smashballoon.com/reauthorizing-our-instagram-facebook-app/" target="_blank" rel="noopener noreferrer">', '</a>' ); ?></em></p>
719
 
720
  <button id="sbi-connect-business-accounts" class="button button-primary" disabled="disabled" style="margin-top: 20px;"><?php _e( 'Connect Accounts', 'instagram-feed' ); ?></button>
721
 
inc/admin/class-sbi-about.php CHANGED
@@ -333,7 +333,7 @@ class SB_Instagram_About {
333
  <div class="addon-container">
334
  <div class="addon-item">
335
  <div class="details sbi-clear">
336
- <img src="<?php echo esc_url( $plugin_data['details']['icon'] ); ?>">
337
  <h5 class="addon-name">
338
  <?php echo esc_html( $plugin_data['details']['name'] ); ?>
339
  </h5>
@@ -492,7 +492,7 @@ class SB_Instagram_About {
492
  </div>
493
 
494
  <div class="sbi-admin-about-section-first-form-video">
495
- <iframe src="https://www.youtube-nocookie.com/embed/q6ZXVU4g970?rel=0" width="540" height="304" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
496
  </div>
497
 
498
  </div>
@@ -704,7 +704,7 @@ class SB_Instagram_About {
704
  <strong><?php echo esc_html( ucfirst( $license ) ); ?></strong> vs <strong><?php echo esc_html( ucfirst( $next_license ) ); ?></strong>
705
  </h1>
706
 
707
- <p class="centered">
708
  <?php esc_html_e( 'Get the most out of your Instagram Feeds by upgrading to Pro and unlocking all of the powerful features.', 'instagram-feed' ); ?>
709
  </p>
710
  </div>
@@ -730,7 +730,7 @@ class SB_Instagram_About {
730
  </div>
731
  <div class="sbi-admin-about-section-hero-extra no-padding sbi-admin-columns">
732
 
733
- <table>
734
  <?php
735
  foreach ( self::$licenses_features as $slug => $name ) {
736
  $current = $this->get_license_data( $slug, $license );
@@ -741,9 +741,9 @@ class SB_Instagram_About {
741
  }
742
  ?>
743
  <tr class="sbi-admin-columns">
744
- <td class="sbi-admin-column-33">
745
  <p><?php echo esc_html( $name ); ?></p>
746
- </td>
747
  <td class="sbi-admin-column-33">
748
  <?php if ( is_array( $current ) ) : ?>
749
  <p class="features-<?php echo esc_attr( $current['status'] ); ?>">
333
  <div class="addon-container">
334
  <div class="addon-item">
335
  <div class="details sbi-clear">
336
+ <img src="<?php echo esc_url( $plugin_data['details']['icon'] ); ?>" alt="<?php esc_attr_e( 'Plugin thumbnail', 'instagram-feed' ); ?>">
337
  <h5 class="addon-name">
338
  <?php echo esc_html( $plugin_data['details']['name'] ); ?>
339
  </h5>
492
  </div>
493
 
494
  <div class="sbi-admin-about-section-first-form-video">
495
+ <iframe src="https://www.youtube-nocookie.com/embed/q6ZXVU4g970?rel=0" width="540" height="304" frameborder="0" allow="autoplay; encrypted-media" title="<?php esc_attr_e( 'Watch a video', 'instagram-feed' ); ?>" allowfullscreen></iframe>
496
  </div>
497
 
498
  </div>
704
  <strong><?php echo esc_html( ucfirst( $license ) ); ?></strong> vs <strong><?php echo esc_html( ucfirst( $next_license ) ); ?></strong>
705
  </h1>
706
 
707
+ <p class="centered" id="sbi_tabledesc">
708
  <?php esc_html_e( 'Get the most out of your Instagram Feeds by upgrading to Pro and unlocking all of the powerful features.', 'instagram-feed' ); ?>
709
  </p>
710
  </div>
730
  </div>
731
  <div class="sbi-admin-about-section-hero-extra no-padding sbi-admin-columns">
732
 
733
+ <table aria-describedby="sbi_tabledesc">
734
  <?php
735
  foreach ( self::$licenses_features as $slug => $name ) {
736
  $current = $this->get_license_data( $slug, $license );
741
  }
742
  ?>
743
  <tr class="sbi-admin-columns">
744
+ <th scope="row" class="sbi-admin-column-33">
745
  <p><?php echo esc_html( $name ); ?></p>
746
+ </th>
747
  <td class="sbi-admin-column-33">
748
  <?php if ( is_array( $current ) ) : ?>
749
  <p class="features-<?php echo esc_attr( $current['status'] ); ?>">
inc/admin/class-sbi-new-user.php CHANGED
@@ -19,7 +19,7 @@ class SBI_New_User extends SBI_Notifications {
19
  *
20
  * @var string
21
  */
22
- const SOURCE_URL = 'http://plugin.smashballoon.com/newuser.json';
23
 
24
  /**
25
  * @var string
19
  *
20
  * @var string
21
  */
22
+ const SOURCE_URL = 'https://plugin.smashballoon.com/newuser.json';
23
 
24
  /**
25
  * @var string
inc/admin/class-sbi-notifications.php CHANGED
@@ -17,7 +17,7 @@ class SBI_Notifications {
17
  *
18
  * @var string
19
  */
20
- const SOURCE_URL = 'http://plugin.smashballoon.com/notifications.json';
21
 
22
  /**
23
  * @var string
@@ -155,7 +155,7 @@ class SBI_Notifications {
155
  if ( empty( $body ) ) {
156
  return array();
157
  }
158
-
159
  return $this->verify( json_decode( $body, true ) );
160
  }
161
 
17
  *
18
  * @var string
19
  */
20
+ const SOURCE_URL = 'https://plugin.smashballoon.com/notifications.json';
21
 
22
  /**
23
  * @var string
155
  if ( empty( $body ) ) {
156
  return array();
157
  }
158
+
159
  return $this->verify( json_decode( $body, true ) );
160
  }
161
 
inc/admin/class-sbi-tracking.php CHANGED
@@ -151,7 +151,6 @@ class SB_Instagram_Tracking {
151
  $data['url'] = home_url();
152
  $data['themename'] = $theme_data->Name;
153
  $data['themeversion'] = $theme_data->Version;
154
- $data['settings'] = array();
155
  $data['pro'] = (int) sbi_is_pro_version();
156
  $data['sites'] = $count_b;
157
  $data['usagetracking'] = get_option( 'sbi_usage_tracking_config', false );
151
  $data['url'] = home_url();
152
  $data['themename'] = $theme_data->Name;
153
  $data['themeversion'] = $theme_data->Version;
 
154
  $data['pro'] = (int) sbi_is_pro_version();
155
  $data['sites'] = $count_b;
156
  $data['usagetracking'] = get_option( 'sbi_usage_tracking_config', false );
inc/admin/main.php CHANGED
@@ -17,9 +17,17 @@ function sb_instagram_menu() {
17
  $notice = ' <span class="update-plugins sbi-error-alert"><span>!</span></span>';
18
  }
19
 
 
 
 
 
 
 
 
 
20
  add_menu_page(
21
  __( 'Instagram Feed', 'instagram-feed' ),
22
- __( 'Instagram Feed', 'instagram-feed' ) . $notice,
23
  $cap,
24
  'sb-instagram-feed',
25
  'sb_instagram_settings_page'
@@ -49,7 +57,7 @@ function sb_instagram_menu() {
49
  'sbi-oembeds',
50
  'sbi_oembeds_page'
51
  );
52
-
53
  //Show a Instagram plugin menu item if it isn't already installed
54
  if( !is_plugin_active( 'custom-facebook-feed/custom-facebook-feed.php' ) && !is_plugin_active( 'custom-facebook-feed-pro/custom-facebook-feed.php' ) ){
55
  add_submenu_page(
@@ -227,7 +235,7 @@ function sbi_oembeds_page() {
227
  <p><?php _e("Anytime you share a link to an Instagram post in WordPress, it is automatically converted into an embedded version of that Instagram post (an \"oEmbed\").</p><p>However, WordPress is discontinuing support for Instagram oEmbeds due to them now requiring an Access Token to work. Don't worry though, we have your back. Just use the button above to connect to Facebook and we'll make sure your Instagram oEmbeds keep working.", "instagram-feed"); ?></p>
228
  </div>
229
 
230
- <img src="<?php echo SBI_PLUGIN_URL . 'img/sbi-oembed.png'; ?>" style="padding: 0px; background: white;">
231
  </div>
232
  <?php } else {
233
  if ( $valid_new_access_token ) {
@@ -459,7 +467,6 @@ function sb_instagram_settings_page() {
459
  update_option( 'sb_instagram_settings', $options );
460
 
461
  //Set the page variables
462
- $sb_instagram_at = $options[ 'sb_instagram_at' ];
463
  $sb_instagram_user_id = $options[ 'sb_instagram_user_id' ];
464
  $sb_instagram_preserve_settings = $options[ 'sb_instagram_preserve_settings' ];
465
  $sb_instagram_ajax_theme = $options[ 'sb_instagram_ajax_theme' ];
@@ -705,8 +712,6 @@ function sb_instagram_settings_page() {
705
  $options[ 'sb_instagram_show_bio' ] = $sb_instagram_show_bio;
706
  $options[ 'sb_instagram_custom_bio' ] = $sb_instagram_custom_bio;
707
  $options[ 'sb_instagram_custom_avatar' ] = $sb_instagram_custom_avatar;
708
- $options[ 'sb_instagram_custom_bio' ] = $sb_instagram_custom_bio;
709
- $options[ 'sb_instagram_custom_avatar' ] = $sb_instagram_custom_avatar;
710
  $options[ 'sb_instagram_header_color' ] = $sb_instagram_header_color;
711
  //Follow button
712
  $options[ 'sb_instagram_show_follow_btn' ] = $sb_instagram_show_follow_btn;
@@ -834,16 +839,8 @@ function sb_instagram_settings_page() {
834
  </div>
835
  <?php
836
  $sb_instagram_type = 'user';
837
- $new_user_name = false;
838
- $returned_data = sbi_get_connected_accounts_data( $sb_instagram_at );
839
- $sb_instagram_at = $returned_data['access_token'];
840
- $connected_accounts = $returned_data['connected_accounts'];
841
- $user_feeds_returned = isset( $returned_data['user_ids'] ) ? $returned_data['user_ids'] : false;
842
- if ( $user_feeds_returned ) {
843
- $user_feed_ids = $user_feeds_returned;
844
- } else {
845
- $user_feed_ids = ! is_array( $sb_instagram_user_id ) ? explode( ',', $sb_instagram_user_id ) : $sb_instagram_user_id;
846
- }
847
 
848
  $new_user_name = false;
849
 
@@ -869,7 +866,7 @@ function sb_instagram_settings_page() {
869
  echo '&nbsp;';
870
  echo '<p style="font-weight: bold; margin-bottom: 5px;">Connected Business Profile:</p>';
871
  echo '<div class="sbi-managed-page sbi-no-select">';
872
- echo '<p><img class="sbi-page-avatar" border="0" height="50" width="50" src="'.$sbi_connected_page_image.'"><b>'.$sbi_connected_page_name.'</b> &nbsp; ('.$sbi_connected_page_id.')</p>';
873
  echo '</div>';
874
  }
875
 
@@ -896,9 +893,9 @@ function sb_instagram_settings_page() {
896
  <?php if( $sbi_active_tab == 'configure' ) { //Start Configure tab ?>
897
  <input type="hidden" name="<?php echo $sb_instagram_configure_hidden_field; ?>" value="Y">
898
 
899
- <table class="form-table">
900
- <tbody>
901
- <h3><?php esc_html_e( 'Configure', 'instagram-feed' ); ?></h3>
902
  <?php $sb_admin_email = get_option('admin_email');
903
  $connect_url = 'https://connect.smashballoon.com/auth/ig/?wordpress_user=' . $sb_admin_email . '&state=' . admin_url('admin.php?page=sb-instagram-feed');
904
  ?>
@@ -909,9 +906,6 @@ function sb_instagram_settings_page() {
909
  <a href="https://smashballoon.com/instagram-feed/token/" target="_blank" style="position: relative; top: 14px; left: 15px;"><?php esc_html_e('Button not working?', 'instagram-feed'); ?></a>
910
  </div>
911
 
912
- <!-- Old Access Token -->
913
- <input name="sb_instagram_at" id="sb_instagram_at" type="hidden" value="<?php echo esc_attr( $sb_instagram_at ); ?>" size="80" maxlength="100" placeholder="Click button above to get your Access Token" />
914
-
915
  <tr valign="top">
916
  <th scope="row"><label><?php esc_html_e( 'Instagram Accounts', 'instagram-feed' ); ?></label><span style="font-weight:normal; font-style:italic; font-size: 12px; display: block;"><?php esc_html_e('Use the button above to connect an Instagram account', 'instagram-feed'); ?></span></th>
917
  <td class="sbi_connected_accounts_wrap">
@@ -1063,17 +1057,17 @@ function sb_instagram_settings_page() {
1063
  <div class="sbi_col sbi_two">
1064
  <div class="sbi_user_feed_ids_wrap">
1065
  <?php foreach ( $user_feed_ids as $feed_id ) : if ( $feed_id !== '' ) :?>
1066
- <?php if( count($connected_accounts) > 0 ) { ?><div id="sbi_user_feed_id_<?php echo $feed_id; ?>" class="sbi_user_feed_account_wrap"><?php } ?>
1067
 
1068
  <?php if ( isset( $connected_accounts[ $feed_id ] ) && ! empty( $connected_accounts[ $feed_id ]['username'] ) ) : ?>
1069
- <strong><?php echo $connected_accounts[ $feed_id ]['username']; ?></strong> <span>(<?php echo $feed_id; ?>)</span>
1070
  <input name="sb_instagram_user_id[]" id="sb_instagram_user_id" type="hidden" value="<?php echo esc_attr( $feed_id ); ?>" />
1071
  <?php elseif ( isset( $connected_accounts[ $feed_id ] ) && ! empty( $connected_accounts[ $feed_id ]['access_token'] ) ) : ?>
1072
- <strong><?php echo $feed_id; ?></strong>
1073
  <input name="sb_instagram_user_id[]" id="sb_instagram_user_id" type="hidden" value="<?php echo esc_attr( $feed_id ); ?>" />
1074
  <?php endif; ?>
1075
 
1076
- <?php if( count($connected_accounts) > 0 ) { ?></div><?php } ?>
1077
  <?php endif; endforeach; ?>
1078
  </div>
1079
 
@@ -1082,7 +1076,7 @@ function sb_instagram_settings_page() {
1082
  <?php endif; ?>
1083
 
1084
  <a class="sbi_tooltip_link" href="JavaScript:void(0);" style="margin: 5px 0 10px 0; display: inline-block; height: 19px;"><?php esc_html_e("How to display User feeds", 'instagram-feed' ); ?></a>
1085
- <div class="sbi_tooltip"><?php _e("<p><b>Displaying Posts from Your User Account</b><br />Simply connect an account using the button above.</p><p style='padding-top:8px;'><b>Displaying Posts from Other Instagram Accounts</b><br />Due to recent changes in the Instagram API it is no longer possible to display photos from other Instagram accounts which you do not have access to. You can only display the user feed of an account which you connect above. You can connect as many account as you like by logging in using the button above, or manually copy/pasting an Access Token by selecting the 'Manually Connect an Account' option.</p><p style='padding-top:10px;'><b>Multiple Acounts</b><br />It is only possible to display feeds from Instagram accounts which you own. In order to display feeds from multiple accounts, first connect them above and then use the buttons to add the account either to your primary feed or to another feed on your site.</p>", 'instagram-feed'); ?></div><br />
1086
  </div>
1087
 
1088
  </div>
@@ -1130,7 +1124,7 @@ function sb_instagram_settings_page() {
1130
  <p>
1131
  <?php echo sprintf( __('To display multiple feed types in a single feed, use %s in your shortcode and then add the user name or hashtag for each feed into the shortcode, like so: %s. This will combine a user feed and a hashtag feed into the same feed.', 'instagram-feed'), 'type="mixed"', '<code>[instagram-feed type="mixed" user="smashballoon" hashtag="#awesomeplugins"]</code>' ); ?>
1132
  </p>
1133
- <p style="padding-top: 8px;"><b>Note:</b> To display a hashtag feed, it is required that you first connect an Instagram Business Profile using the <b>"Connect an Instagram Account"</b> button above. &nbsp;<a href="https://smashballoon.com/instagram-business-profiles/" target="_blank">Why is this required?</a>
1134
  </p>
1135
  </div>
1136
  </div>
@@ -1141,7 +1135,7 @@ function sb_instagram_settings_page() {
1141
  <br>
1142
  <a class="sbi_tooltip_link sbi_pro" href="JavaScript:void(0);" style="margin-left: 0;"><i class="fa fa-question-circle" aria-hidden="true" style="margin-right: 6px;"></i><?php esc_html_e('Combine multiple feed types into a single feed', 'instagram-feed'); ?></a>
1143
  <p class="sbi_tooltip">
1144
- <b><?php _e( 'Please note: this is only available in the <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=multipletypes" target="_blank">Pro version</a>', 'instagram-feed' ); ?>.</b><br />
1145
  <?php echo sprintf( __('To display multiple feed types in a single feed, use %s in your shortcode and then add each user name or hashtag of each feed into the shortcode, like so: %s. This will combine a user feed and a hashtag feed into the same feed.', 'instagram-feed'), 'type="mixed"', '<code>[instagram-feed type="mixed" user="smashballoon" hashtag="#awesomeplugins"]</code>' ); ?>
1146
  </p>
1147
  </div>
@@ -1168,9 +1162,9 @@ function sb_instagram_settings_page() {
1168
  <label for="sbi_caching_type_cron"><?php esc_html_e( 'In the background', 'instagram-feed' ); ?></label>
1169
  <a class="sbi_tooltip_link" href="JavaScript:void(0);" style="position: relative; top: 2px;"><i class="fa fa-question-circle" aria-hidden="true"></i></a>
1170
  <p class="sbi_tooltip sbi-more-info"><?php esc_html_e( 'Your Instagram post data is temporarily cached by the plugin in your WordPress database. There are two ways that you can set the plugin to check for new data', 'instagram-feed' ); ?>:<br><br>
1171
- <?php _e( '<b>1. In the background</b><br>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. <b>Please note</b> that the plugin will initially check for data from Instagram when the page first loads, but then after that will check in the background on the schedule selected - unless the cache is cleared.', 'instagram-feed' ); ?>
1172
  <br><br>
1173
- <?php _e( '<b>2. When the page loads</b><br>Selecting this option means that when the cache expires then the plugin will check Instagram 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. <b>Tip:</b> If you\'re experiencing an issue with the plugin not updating automatically then try enabling the setting labeled <b>\'Force cache to clear on interval\'</b> which is located on the \'Customize\' tab.', 'instagram-feed' ) . '</p>'; ?>
1174
 
1175
  </div>
1176
  <div class="sbi_row sbi-caching-cron-options" style="display: block;">
@@ -1217,7 +1211,7 @@ function sb_instagram_settings_page() {
1217
  if ( $schedule == '30mins' ) $schedule = __( 'every 30 minutes', 'instagram-feed' );
1218
  if ( $schedule == 'twicedaily' ) $schedule = __( 'every 12 hours', 'instagram-feed' );
1219
  $sbi_next_cron_event = wp_next_scheduled( 'sbi_feed_update' );
1220
- echo '<p class="sbi-caching-sched-notice"><span><b>' . __( 'Next check', 'instagram-feed' ) . ': ' . date( $time_format, $sbi_next_cron_event + sbi_get_utc_offset() ) . ' (' . $schedule . ')</b> - ' . __( 'Note: Saving the settings on this page will clear the cache and reset this schedule', 'instagram-feed' ) . '</span></p>';
1221
  } else {
1222
  echo '<p style="font-size: 11px; color: #666;">' . __( 'Nothing currently scheduled', 'instagram-feed' ) . '</p>';
1223
  }
@@ -1278,9 +1272,9 @@ function sb_instagram_settings_page() {
1278
 
1279
  <input type="hidden" name="<?php echo $sb_instagram_customize_hidden_field; ?>" value="Y">
1280
 
1281
- <h3><?php esc_html_e( 'General', 'instagram-feed' ); ?></h3>
1282
 
1283
- <table class="form-table">
1284
  <tbody>
1285
  <tr valign="top">
1286
  <th scope="row"><label><?php esc_html_e('Width of Feed', 'instagram-feed'); ?></label><code class="sbi_shortcode"> width widthunit
@@ -1320,9 +1314,9 @@ function sb_instagram_settings_page() {
1320
  </table>
1321
 
1322
  <hr id="layout" />
1323
- <h3><?php esc_html_e('Layout', 'instagram-feed'); ?></h3>
1324
 
1325
- <table class="form-table">
1326
  <tbody>
1327
  <?php
1328
  $selected_type = isset( $sb_instagram_layout_type ) ? $sb_instagram_layout_type : 'grid';
@@ -1510,9 +1504,8 @@ function sb_instagram_settings_page() {
1510
  <?php submit_button(); ?>
1511
 
1512
  <hr id="photos" />
1513
- <h3><?php esc_html_e('Photos', 'instagram-feed'); ?></h3>
1514
-
1515
- <table class="form-table">
1516
  <tbody>
1517
  <tr valign="top">
1518
  <th scope="row"><label><?php esc_html_e('Sort Photos By', 'instagram-feed'); ?></label><code class="sbi_shortcode"> sortby
@@ -1544,16 +1537,16 @@ function sb_instagram_settings_page() {
1544
  </tbody>
1545
  </table>
1546
 
1547
- <span><a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><b>+</b> <?php esc_html_e('Show Pro Options', 'instagram-feed'); ?></a></span>
1548
 
1549
  <div class="sbi-pro-options">
1550
  <p class="sbi-upgrade-link">
1551
  <i class="fa fa-rocket" aria-hidden="true"></i>&nbsp; <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=general" target="_blank"><?php esc_html_e('Upgrade to Pro to enable these settings', 'instagram-feed'); ?></a>
1552
  </p>
1553
- <table class="form-table">
1554
  <tbody>
1555
  <tr valign="top" class="sbi_pro">
1556
- <th scope="row"><label><?php esc_html_e('Media Type to Display','instagram-feed'); ?></label></th>
1557
  <td>
1558
  <select name="sb_instagram_media_type" disabled>
1559
  <option value="all"><?php esc_html_e('All','instagram-feed'); ?></option>
@@ -1584,15 +1577,15 @@ function sb_instagram_settings_page() {
1584
 
1585
 
1586
  <hr />
1587
- <h3><?php esc_html_e('Photo Hover Style','instagram-feed'); ?></h3>
1588
 
1589
  <p style="padding-bottom: 18px;">
1590
  <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=photohover" target="_blank"><?php esc_html_e('Upgrade to Pro to enable Photo Hover styles','instagram-feed'); ?></a><br />
1591
- <a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><b>+</b> <?php esc_html_e('Show Pro Options','instagram-feed'); ?></a>
1592
  </p>
1593
 
1594
  <div class="sbi-pro-options" style="margin-top: -15px;">
1595
- <table class="form-table">
1596
  <tbody>
1597
  <tr valign="top" class="sbi_pro">
1598
  <th scope="row"><label><?php esc_html_e('Hover Background Color', 'instagram-feed'); ?></label></th>
@@ -1646,14 +1639,14 @@ function sb_instagram_settings_page() {
1646
 
1647
 
1648
  <hr />
1649
- <h3><?php esc_html_e( 'Carousel', 'instagram-feed' ); ?></h3>
1650
  <p style="padding-bottom: 18px;">
1651
  <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=carousel" target="_blank"><?php esc_html_e('Upgrade to Pro to enable Carousels', 'instagram-feed'); ?></a><br />
1652
- <a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><b>+</b> <?php esc_html_e('Show Pro Options', 'instagram-feed'); ?></a>
1653
  </p>
1654
 
1655
  <div class="sbi-pro-options" style="margin-top: -15px;">
1656
- <table class="form-table">
1657
  <tbody>
1658
  <tr valign="top" class="sbi_pro">
1659
  <th scope="row"><label><?php esc_html_e("Enable Carousel", 'instagram-feed'); ?></label></th>
@@ -1694,8 +1687,8 @@ function sb_instagram_settings_page() {
1694
 
1695
 
1696
  <hr id="headeroptions" />
1697
- <h3><?php esc_html_e("Header", 'instagram-feed'); ?></h3>
1698
- <table class="form-table">
1699
  <tbody>
1700
  <tr valign="top">
1701
  <th scope="row"><label><?php esc_html_e("Show Feed Header", 'instagram-feed'); ?></label><code class="sbi_shortcode"> showheader
@@ -1761,17 +1754,19 @@ function sb_instagram_settings_page() {
1761
  </tbody>
1762
  </table>
1763
 
1764
- <span><a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><b>+</b> <?php esc_html_e('Show Pro Options', 'instagram-feed'); ?></a></span>
1765
 
1766
  <div class="sbi-pro-options">
1767
  <p class="sbi-upgrade-link">
1768
  <i class="fa fa-rocket" aria-hidden="true"></i>&nbsp; <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=header" target="_blank"><?php esc_html_e('Upgrade to Pro to enable these settings', 'instagram-feed'); ?></a>
1769
  </p>
1770
- <table class="form-table">
1771
- <tbody>
1772
- <tr valign="top" class="sbi_pro">
1773
- <th scope="row"><label><?php esc_html_e('Header Style','instagram-feed'); ?></label></th>
1774
- <td>
 
 
1775
  <select name="sb_instagram_header_style" style="float: left;">
1776
  <option value="circle"><?php esc_html_e('Standard','instagram-feed'); ?></option>
1777
  <option value="boxed"><?php esc_html_e('Boxed','instagram-feed'); ?></option>
@@ -1794,14 +1789,14 @@ function sb_instagram_settings_page() {
1794
 
1795
 
1796
  <hr />
1797
- <h3><?php esc_html_e("Caption", 'instagram-feed'); ?></h3>
1798
  <p style="padding-bottom: 18px;">
1799
  <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=caption" target="_blank"><?php esc_html_e("Upgrade to Pro to enable Photo Captions", 'instagram-feed'); ?></a><br />
1800
- <a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><b>+</b> <?php esc_html_e("Show Pro Options", 'instagram-feed'); ?></a>
1801
  </p>
1802
 
1803
  <div class="sbi-pro-options" style="margin-top: -15px;">
1804
- <table class="form-table">
1805
  <tbody>
1806
  <tr valign="top" class="sbi_pro">
1807
  <th scope="row"><label><?php esc_html_e("Show Caption", 'instagram-feed'); ?></label></th>
@@ -1850,14 +1845,14 @@ function sb_instagram_settings_page() {
1850
 
1851
 
1852
  <hr />
1853
- <h3><?php esc_html_e("Likes &amp; Comments", 'instagram-feed'); ?></h3>
1854
  <p style="padding-bottom: 18px;">
1855
  <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=stats" target="_blank"><?php esc_html_e("Upgrade to Pro to enable Likes &amp; Comments", 'instagram-feed'); ?></a><br />
1856
- <a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><b>+</b> <?php esc_html_e("Show Pro Options", 'instagram-feed'); ?></a>
1857
  </p>
1858
 
1859
  <div class="sbi-pro-options" style="margin-top: -15px;">
1860
- <table class="form-table">
1861
  <tbody>
1862
  <tr valign="top" class="sbi_pro">
1863
  <th scope="row"><label><?php esc_html_e("Show Icons", 'instagram-feed'); ?></label></th>
@@ -1898,15 +1893,15 @@ function sb_instagram_settings_page() {
1898
 
1899
 
1900
  <hr />
1901
- <h3><?php esc_html_e('Lightbox Comments', 'instagram-feed'); ?></h3>
1902
 
1903
  <p style="padding-bottom: 18px;">
1904
  <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=comments" target="_blank"><?php esc_html_e('Upgrade to Pro to enable Comments', 'instagram-feed'); ?></a><br />
1905
- <a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><b>+</b> <?php esc_html_e('Show Pro Options', 'instagram-feed'); ?></a>
1906
  </p>
1907
 
1908
  <div class="sbi-pro-options" style="margin-top: -15px;">
1909
- <table class="form-table">
1910
  <tbody>
1911
 
1912
  <tr valign="top" class="sbi_pro">
@@ -1934,8 +1929,8 @@ function sb_instagram_settings_page() {
1934
 
1935
 
1936
  <hr id="loadmore" />
1937
- <h3><?php esc_html_e("'Load More' Button", 'instagram-feed'); ?></h3>
1938
- <table class="form-table">
1939
  <tbody>
1940
  <tr valign="top">
1941
  <th scope="row"><label><?php esc_html_e("Show the 'Load More' button", 'instagram-feed'); ?></label><code class="sbi_shortcode"> showbutton
@@ -1971,8 +1966,8 @@ function sb_instagram_settings_page() {
1971
  <?php submit_button(); ?>
1972
 
1973
  <hr id="follow" />
1974
- <h3><?php esc_html_e("'Follow' Button", 'instagram-feed'); ?></h3>
1975
- <table class="form-table">
1976
  <tbody>
1977
  <tr valign="top">
1978
  <th scope="row"><label><?php esc_html_e("Show the Follow button", 'instagram-feed'); ?></label><code class="sbi_shortcode"> showfollow
@@ -2007,16 +2002,16 @@ function sb_instagram_settings_page() {
2007
  </table>
2008
 
2009
  <hr id="filtering" />
2010
- <h3><?php esc_html_e('Post Filtering', 'instagram-feed'); ?></h3>
2011
 
2012
  <p style="padding-bottom: 18px;">
2013
  <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=filtering" target="_blank"><?php esc_html_e('Upgrade to Pro to enable Post Filtering options', 'instagram-feed'); ?></a><br />
2014
- <a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><b>+</b> <?php esc_html_e('Show Pro Options', 'instagram-feed'); ?></a>
2015
  </p>
2016
 
2017
  <div class="sbi-pro-options" style="margin-top: -15px;">
2018
 
2019
- <table class="form-table">
2020
  <tbody>
2021
  <tr valign="top" class="sbi_pro">
2022
  <th scope="row"><label><?php esc_html_e('Remove photos containing these words or hashtags', 'instagram-feed'); ?></label></th>
@@ -2057,15 +2052,15 @@ function sb_instagram_settings_page() {
2057
 
2058
 
2059
  <hr id="moderation" />
2060
- <h3><?php esc_html_e('Moderation', 'instagram-feed'); ?></h3>
2061
 
2062
  <p style="padding-bottom: 18px;">
2063
  <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=moderation" target="_blank"><?php esc_html_e('Upgrade to Pro to enable Moderation options', 'instagram-feed'); ?></a><br />
2064
- <a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><b>+</b> <?php esc_html_e('Show Pro Options', 'instagram-feed'); ?></a>
2065
  </p>
2066
 
2067
  <div class="sbi-pro-options" style="margin-top: -15px;">
2068
- <table class="form-table">
2069
  <tbody>
2070
  <tr valign="top" class="sbi_pro">
2071
  <th scope="row"><label><?php esc_html_e('Moderation Type', 'instagram-feed'); ?></label></th>
@@ -2073,7 +2068,7 @@ function sb_instagram_settings_page() {
2073
  <input class="sb_instagram_moderation_mode" checked="checked" disabled type="radio" value="visual" style="margin-top: 0;" /><label><?php esc_html_e('Visual', 'instagram-feed'); ?></label>
2074
  <input class="sb_instagram_moderation_mode" disabled type="radio" value="manual" style="margin-top: 0; margin-left: 10px;"/><label><?php esc_html_e('Manual', 'instagram-feed'); ?></label>
2075
 
2076
- <p class="sbi_tooltip" style="display: block;"><?php _e("<b>Visual Moderation Mode</b><br />This adds a button to each feed that will allow you to hide posts, block users, and create white lists from the front end using a visual interface. Visit <a href='https://smashballoon.com/guide-to-moderation-mode/?utm_campaign=instagram-free&utm_source=settings&utm_medium=moderationmode' target='_blank'>this page</a> for details", 'instagram-feed'); ?></p>
2077
 
2078
  </td>
2079
  </tr>
@@ -2106,9 +2101,9 @@ function sb_instagram_settings_page() {
2106
  </div>
2107
 
2108
  <hr id="gdpr" />
2109
- <h3><?php esc_html_e('GDPR', 'instagram-feed'); ?></h3>
2110
 
2111
- <table class="form-table">
2112
  <tbody>
2113
  <tr>
2114
  <th class="bump-left"><label class="bump-left"><?php esc_html_e("Enable GDPR settings", 'instagram-feed'); ?></label><code class="sbi_shortcode"> gdpr
@@ -2184,7 +2179,7 @@ function sb_instagram_settings_page() {
2184
  <div class="sbi_active">
2185
  <p>
2186
  <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check-circle" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="svg-inline--fa fa-check-circle fa-w-16 fa-2x"><path fill="currentColor" d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z" class=""></path></svg>
2187
- <b><?php echo sprintf( __( '%s detected', 'instagram-feed' ), $active_plugin ); ?></b>
2188
  <br />
2189
  <?php esc_html_e( 'Some Instagram Feed features will be limited for visitors to ensure GDPR compliance until they give consent.', 'instagram-feed' ); ?>
2190
  <a href="JavaScript:void(0);" class="sbi_show_gdpr_list"><?php esc_html_e( 'What will be limited?', 'instagram-feed' ); ?></a>
@@ -2223,14 +2218,14 @@ function sb_instagram_settings_page() {
2223
  </table>
2224
 
2225
  <hr id="customcss" />
2226
- <h3><?php esc_html_e('Misc', 'instagram-feed'); ?></h3>
2227
 
2228
- <table class="form-table">
2229
  <tbody>
2230
  <tr valign="top">
2231
- <td style="padding-bottom: 0;">
2232
  <?php _e('<strong style="font-size: 15px;">Custom CSS</strong><br />Enter your own custom CSS in the box below', 'instagram-feed'); ?>
2233
- </td>
2234
  </tr>
2235
  <tr valign="top">
2236
  <td>
@@ -2249,7 +2244,7 @@ function sb_instagram_settings_page() {
2249
  </tr>
2250
  </tbody>
2251
  </table>
2252
- <table class="form-table">
2253
  <tbody>
2254
 
2255
  <tr valign="top">
@@ -2352,7 +2347,7 @@ function sb_instagram_settings_page() {
2352
  </tr>
2353
  </tbody>
2354
  </table>
2355
- <table class="form-table">
2356
  <tbody>
2357
  <tr>
2358
  <th class="bump-left"><label class="bump-left"><?php esc_html_e("Enable Custom Templates", 'instagram-feed'); ?></label></th>
@@ -2500,9 +2495,9 @@ function sb_instagram_settings_page() {
2500
  </p>
2501
  <p><?php esc_html_e("See the table below for a full list of available shortcode options:", 'instagram-feed'); ?></p>
2502
 
2503
- <p><span class="sbi_table_key"></span><?php esc_html_e('Pro version only', 'instagram-feed'); ?></p>
2504
 
2505
- <table class="sbi_shortcode_table">
2506
  <tbody>
2507
  <tr valign="top">
2508
  <th scope="row"><?php esc_html_e('Shortcode option', 'instagram-feed'); ?></th>
@@ -2882,13 +2877,13 @@ function sb_instagram_settings_page() {
2882
 
2883
  <p>
2884
  <span class="sbi-support-title"><i class="fa fa-youtube-play" aria-hidden="true"></i>&nbsp; <a
2885
- href="https://www.youtube.com/embed/q6ZXVU4g970" target="_blank"
2886
  id="sbi-play-support-video"><?php esc_html_e( 'Watch a Video', 'instagram-feed' ); ?></a></span>
2887
- <?php _e( "Watch a short video demonstrating how to set up, customize and use the plugin.<br /><b>Please note</b> that the video shows the set up and use of the <b><a href='https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=general' target='_blank'>Pro version</a></b> of the plugin, but the process is the same for this free version. The only difference is some of the features available.", 'instagram-feed' ); ?>
2888
 
2889
  <iframe id="sbi-support-video"
2890
  src="//www.youtube.com/embed/q6ZXVU4g970?theme=light&amp;showinfo=0&amp;controls=2" width="960"
2891
- height="540" frameborder="0" allowfullscreen="allowfullscreen"></iframe>
2892
  </p>
2893
 
2894
  <p>
@@ -2901,14 +2896,14 @@ function sb_instagram_settings_page() {
2901
  <div class="sbi-support-faqs">
2902
 
2903
  <ul>
2904
- <li><b><?php esc_html_e( 'FAQs', 'instagram-feed' ); ?></b></li>
2905
  <li>&bull;&nbsp; <?php _e( '<a href="https://smashballoon.com/my-photos-wont-load/?utm_campaign=instagram-free&utm_source=support&utm_medium=faqsnophotos" target="_blank">My Instagram Feed Won\'t Load</a>', 'instagram-feed' ); ?></li>
2906
  <li>&bull;&nbsp; <?php _e( '<a href="https://smashballoon.com/my-instagram-access-token-keep-expiring/?utm_campaign=instagram-free&utm_source=support&utm_medium=faqsexpiring" target="_blank">My Access Token Keeps Expiring</a>', 'instagram-feed' ); ?></li>
2907
  <li style="margin-top: 8px; font-size: 12px;"><a href="https://smashballoon.com/instagram-feed/support/faq/?utm_campaign=instagram-free&utm_source=support&utm_medium=faqs" target="_blank"><?php esc_html_e( 'See All', 'instagram-feed' ); ?><i class="fa fa-chevron-right" aria-hidden="true"></i></a></li>
2908
  </ul>
2909
 
2910
  <ul>
2911
- <li><b><?php esc_html_e("Documentation", 'instagram-feed'); ?></b></li>
2912
  <li>&bull;&nbsp; <?php _e( '<a href="https://smashballoon.com/instagram-feed/free?utm_campaign=instagram-free&utm_source=support&utm_medium=installation" target="_blank">Installation and Configuration</a>', 'instagram-feed' ); ?></li>
2913
  <li>&bull;&nbsp; <?php _e( '<a href="https://smashballoon.com/display-multiple-instagram-feeds/?utm_campaign=instagram-free&utm_source=support&utm_medium=multiple" target="_blank">Displaying multiple feeds</a>', 'instagram-feed' ); ?></li>
2914
  <li>&bull;&nbsp; <?php _e( '<a href="https://smashballoon.com/instagram-feed-faq/customization/?utm_campaign=instagram-free&utm_source=support&utm_medium=customizing" target="_blank">Customizing your Feed</a>', 'instagram-feed' ); ?></li>
@@ -2919,7 +2914,7 @@ function sb_instagram_settings_page() {
2919
  <span class="sbi-support-title"><i class="fa fa-envelope" aria-hidden="true"></i>&nbsp; <a
2920
  href="https://smashballoon.com/instagram-feed/support/?utm_campaign=instagram-free&utm_source=support&utm_medium=contact"
2921
  target="_blank"><?php esc_html_e( 'Request Support', 'instagram-feed' ); ?></a></span>
2922
- <?php _e( 'Still need help? Submit a ticket and one of our support experts will get back to you as soon as possible.<br /><b>Important:</b> Please include your <b>System Info</b> below with all support requests.', 'instagram-feed' ); ?>
2923
  </p>
2924
  </div>
2925
 
@@ -3285,7 +3280,7 @@ echo 'oEmbed request test: ' . esc_attr( $message );
3285
 
3286
  <?php
3287
  } //End Support tab
3288
-
3289
 
3290
  if( $sbi_active_tab == 'more' ) { //Start More Social Feeds tab
3291
 
@@ -3563,7 +3558,7 @@ echo 'oEmbed request test: ' . esc_attr( $message );
3563
  <img src="<?php echo SBI_PLUGIN_URL . 'img/instagram-pro-promo.png?2019'; ?>" alt="<?php esc_attr_e( 'Instagram Feed Pro', 'instagram-feed' ); ?>">
3564
  </a>
3565
 
3566
- <p class="sbi_plugins_promo dashicons-before dashicons-admin-plugins"> <?php _e('Check out our other free plugins: <a href="https://wordpress.org/plugins/custom-facebook-feed/" target="_blank">Facebook</a>, <a href="https://wordpress.org/plugins/custom-twitter-feeds/" target="_blank">Twitter</a>, and <a href="https://wordpress.org/plugins/feeds-for-youtube/" target="_blank">YouTube</a>.', 'instagram-feed' ); ?></p>
3567
 
3568
  <div class="sbi_share_plugin">
3569
  <h3><?php esc_html_e('Like the plugin? Help spread the word!', 'instagram-feed'); ?></h3>
@@ -3573,4 +3568,4 @@ echo 'oEmbed request test: ' . esc_attr( $message );
3573
 
3574
  </div> <!-- end #sbi_admin -->
3575
 
3576
- <?php } //End Settings page
17
  $notice = ' <span class="update-plugins sbi-error-alert"><span>!</span></span>';
18
  }
19
 
20
+ $sbi_notifications = new SBI_Notifications();
21
+ $notifications = $sbi_notifications->get();
22
+
23
+ $notice_bubble = '';
24
+ if ( empty( $notice ) && ! empty( $notifications ) && is_array( $notifications ) ) {
25
+ $notice_bubble = ' <span class="sbi-notice-alert"><span>'.count( $notifications ).'</span></span>';
26
+ }
27
+
28
  add_menu_page(
29
  __( 'Instagram Feed', 'instagram-feed' ),
30
+ __( 'Instagram Feed', 'instagram-feed' ) . $notice . $notice_bubble,
31
  $cap,
32
  'sb-instagram-feed',
33
  'sb_instagram_settings_page'
57
  'sbi-oembeds',
58
  'sbi_oembeds_page'
59
  );
60
+
61
  //Show a Instagram plugin menu item if it isn't already installed
62
  if( !is_plugin_active( 'custom-facebook-feed/custom-facebook-feed.php' ) && !is_plugin_active( 'custom-facebook-feed-pro/custom-facebook-feed.php' ) ){
63
  add_submenu_page(
235
  <p><?php _e("Anytime you share a link to an Instagram post in WordPress, it is automatically converted into an embedded version of that Instagram post (an \"oEmbed\").</p><p>However, WordPress is discontinuing support for Instagram oEmbeds due to them now requiring an Access Token to work. Don't worry though, we have your back. Just use the button above to connect to Facebook and we'll make sure your Instagram oEmbeds keep working.", "instagram-feed"); ?></p>
236
  </div>
237
 
238
+ <img src="<?php echo SBI_PLUGIN_URL . 'img/sbi-oembed.png'; ?>" style="padding: 0px; background: white;" alt="<?php esc_attr_e( 'Oembed example', 'instagram-feed' ); ?>">
239
  </div>
240
  <?php } else {
241
  if ( $valid_new_access_token ) {
467
  update_option( 'sb_instagram_settings', $options );
468
 
469
  //Set the page variables
 
470
  $sb_instagram_user_id = $options[ 'sb_instagram_user_id' ];
471
  $sb_instagram_preserve_settings = $options[ 'sb_instagram_preserve_settings' ];
472
  $sb_instagram_ajax_theme = $options[ 'sb_instagram_ajax_theme' ];
712
  $options[ 'sb_instagram_show_bio' ] = $sb_instagram_show_bio;
713
  $options[ 'sb_instagram_custom_bio' ] = $sb_instagram_custom_bio;
714
  $options[ 'sb_instagram_custom_avatar' ] = $sb_instagram_custom_avatar;
 
 
715
  $options[ 'sb_instagram_header_color' ] = $sb_instagram_header_color;
716
  //Follow button
717
  $options[ 'sb_instagram_show_follow_btn' ] = $sb_instagram_show_follow_btn;
839
  </div>
840
  <?php
841
  $sb_instagram_type = 'user';
842
+ $connected_accounts = SBI_Account_Connector::stored_connected_accounts();
843
+ $user_feed_ids = ! is_array( $sb_instagram_user_id ) ? explode( ',', $sb_instagram_user_id ) : $sb_instagram_user_id;
 
 
 
 
 
 
 
 
844
 
845
  $new_user_name = false;
846
 
866
  echo '&nbsp;';
867
  echo '<p style="font-weight: bold; margin-bottom: 5px;">Connected Business Profile:</p>';
868
  echo '<div class="sbi-managed-page sbi-no-select">';
869
+ echo '<p><img class="sbi-page-avatar" border="0" height="50" width="50" src="'.esc_url($sbi_connected_page_image).'" alt="'.esc_attr( $sbi_connected_page_id ) . '"><strong>'.$sbi_connected_page_name.'</strong> &nbsp; ('.$sbi_connected_page_id.')</p>';
870
  echo '</div>';
871
  }
872
 
893
  <?php if( $sbi_active_tab == 'configure' ) { //Start Configure tab ?>
894
  <input type="hidden" name="<?php echo $sb_instagram_configure_hidden_field; ?>" value="Y">
895
 
896
+ <table class="form-table" aria-describedby="sbi-con-desc">
897
+ <tbody>
898
+ <h3 id="sbi-con-desc"><?php _e( 'Configure', 'instagram-feed' ); ?></h3>
899
  <?php $sb_admin_email = get_option('admin_email');
900
  $connect_url = 'https://connect.smashballoon.com/auth/ig/?wordpress_user=' . $sb_admin_email . '&state=' . admin_url('admin.php?page=sb-instagram-feed');
901
  ?>
906
  <a href="https://smashballoon.com/instagram-feed/token/" target="_blank" style="position: relative; top: 14px; left: 15px;"><?php esc_html_e('Button not working?', 'instagram-feed'); ?></a>
907
  </div>
908
 
 
 
 
909
  <tr valign="top">
910
  <th scope="row"><label><?php esc_html_e( 'Instagram Accounts', 'instagram-feed' ); ?></label><span style="font-weight:normal; font-style:italic; font-size: 12px; display: block;"><?php esc_html_e('Use the button above to connect an Instagram account', 'instagram-feed'); ?></span></th>
911
  <td class="sbi_connected_accounts_wrap">
1057
  <div class="sbi_col sbi_two">
1058
  <div class="sbi_user_feed_ids_wrap">
1059
  <?php foreach ( $user_feed_ids as $feed_id ) : if ( $feed_id !== '' ) :?>
1060
+ <?php if ( ! empty( $connected_accounts) ) { ?><div id="sbi_user_feed_id_<?php echo esc_attr( $feed_id ); ?>" class="sbi_user_feed_account_wrap"><?php } ?>
1061
 
1062
  <?php if ( isset( $connected_accounts[ $feed_id ] ) && ! empty( $connected_accounts[ $feed_id ]['username'] ) ) : ?>
1063
+ <strong><?php echo esc_html( $connected_accounts[ $feed_id ]['username'] ); ?></strong> <span>(<?php echo esc_html( $feed_id ); ?>)</span>
1064
  <input name="sb_instagram_user_id[]" id="sb_instagram_user_id" type="hidden" value="<?php echo esc_attr( $feed_id ); ?>" />
1065
  <?php elseif ( isset( $connected_accounts[ $feed_id ] ) && ! empty( $connected_accounts[ $feed_id ]['access_token'] ) ) : ?>
1066
+ <strong><?php echo esc_html( $feed_id ); ?></strong>
1067
  <input name="sb_instagram_user_id[]" id="sb_instagram_user_id" type="hidden" value="<?php echo esc_attr( $feed_id ); ?>" />
1068
  <?php endif; ?>
1069
 
1070
+ <?php if ( ! empty( $connected_accounts) ) { ?></div><?php } ?>
1071
  <?php endif; endforeach; ?>
1072
  </div>
1073
 
1076
  <?php endif; ?>
1077
 
1078
  <a class="sbi_tooltip_link" href="JavaScript:void(0);" style="margin: 5px 0 10px 0; display: inline-block; height: 19px;"><?php esc_html_e("How to display User feeds", 'instagram-feed' ); ?></a>
1079
+ <div class="sbi_tooltip"><?php _e("<p><strong>Displaying Posts from Your User Account</strong><br />Simply connect an account using the button above.</p><p style='padding-top:8px;'><strong>Displaying Posts from Other Instagram Accounts</strong><br />Due to recent changes in the Instagram API it is no longer possible to display photos from other Instagram accounts which you do not have access to. You can only display the user feed of an account which you connect above. You can connect as many account as you like by logging in using the button above, or manually copy/pasting an Access Token by selecting the 'Manually Connect an Account' option.</p><p style='padding-top:10px;'><strong>Multiple Acounts</strong><br />It is only possible to display feeds from Instagram accounts which you own. In order to display feeds from multiple accounts, first connect them above and then use the buttons to add the account either to your primary feed or to another feed on your site.</p>", 'instagram-feed'); ?></div><br />
1080
  </div>
1081
 
1082
  </div>
1124
  <p>
1125
  <?php echo sprintf( __('To display multiple feed types in a single feed, use %s in your shortcode and then add the user name or hashtag for each feed into the shortcode, like so: %s. This will combine a user feed and a hashtag feed into the same feed.', 'instagram-feed'), 'type="mixed"', '<code>[instagram-feed type="mixed" user="smashballoon" hashtag="#awesomeplugins"]</code>' ); ?>
1126
  </p>
1127
+ <p style="padding-top: 8px;"><strong>Note:</strong> To display a hashtag feed, it is required that you first connect an Instagram Business Profile using the <strong>"Connect an Instagram Account"</strong> button above. &nbsp;<a href="https://smashballoon.com/instagram-business-profiles/" target="_blank">Why is this required?</a>
1128
  </p>
1129
  </div>
1130
  </div>
1135
  <br>
1136
  <a class="sbi_tooltip_link sbi_pro" href="JavaScript:void(0);" style="margin-left: 0;"><i class="fa fa-question-circle" aria-hidden="true" style="margin-right: 6px;"></i><?php esc_html_e('Combine multiple feed types into a single feed', 'instagram-feed'); ?></a>
1137
  <p class="sbi_tooltip">
1138
+ <strong><?php _e( 'Please note: this is only available in the <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=multipletypes" target="_blank">Pro version</a>', 'instagram-feed' ); ?>.</strong><br />
1139
  <?php echo sprintf( __('To display multiple feed types in a single feed, use %s in your shortcode and then add each user name or hashtag of each feed into the shortcode, like so: %s. This will combine a user feed and a hashtag feed into the same feed.', 'instagram-feed'), 'type="mixed"', '<code>[instagram-feed type="mixed" user="smashballoon" hashtag="#awesomeplugins"]</code>' ); ?>
1140
  </p>
1141
  </div>
1162
  <label for="sbi_caching_type_cron"><?php esc_html_e( 'In the background', 'instagram-feed' ); ?></label>
1163
  <a class="sbi_tooltip_link" href="JavaScript:void(0);" style="position: relative; top: 2px;"><i class="fa fa-question-circle" aria-hidden="true"></i></a>
1164
  <p class="sbi_tooltip sbi-more-info"><?php esc_html_e( 'Your Instagram post data is temporarily cached by the plugin in your WordPress database. There are two ways that you can set the plugin to check for new data', 'instagram-feed' ); ?>:<br><br>
1165
+ <?php _e( '<strong>1. In the background</strong><br>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. <strong>Please note</strong> that the plugin will initially check for data from Instagram when the page first loads, but then after that will check in the background on the schedule selected - unless the cache is cleared.', 'instagram-feed' ); ?>
1166
  <br><br>
1167
+ <?php _e( '<strong>2. When the page loads</strong><br>Selecting this option means that when the cache expires then the plugin will check Instagram 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. <strong>Tip:</strong> If you\'re experiencing an issue with the plugin not updating automatically then try enabling the setting labeled <strong>\'Force cache to clear on interval\'</strong> which is located on the \'Customize\' tab.', 'instagram-feed' ) . '</p>'; ?>
1168
 
1169
  </div>
1170
  <div class="sbi_row sbi-caching-cron-options" style="display: block;">
1211
  if ( $schedule == '30mins' ) $schedule = __( 'every 30 minutes', 'instagram-feed' );
1212
  if ( $schedule == 'twicedaily' ) $schedule = __( 'every 12 hours', 'instagram-feed' );
1213
  $sbi_next_cron_event = wp_next_scheduled( 'sbi_feed_update' );
1214
+ echo '<p class="sbi-caching-sched-notice"><span><strong>' . __( 'Next check', 'instagram-feed' ) . ': ' . date( $time_format, $sbi_next_cron_event + sbi_get_utc_offset() ) . ' (' . $schedule . ')</strong> - ' . __( 'Note: Saving the settings on this page will clear the cache and reset this schedule', 'instagram-feed' ) . '</span></p>';
1215
  } else {
1216
  echo '<p style="font-size: 11px; color: #666;">' . __( 'Nothing currently scheduled', 'instagram-feed' ) . '</p>';
1217
  }
1272
 
1273
  <input type="hidden" name="<?php echo $sb_instagram_customize_hidden_field; ?>" value="Y">
1274
 
1275
+ <h3 id="sbi_general_heading"><?php _e('General', 'instagram-feed'); ?></h3>
1276
 
1277
+ <table class="form-table" aria-describedby="sbi_general_heading">
1278
  <tbody>
1279
  <tr valign="top">
1280
  <th scope="row"><label><?php esc_html_e('Width of Feed', 'instagram-feed'); ?></label><code class="sbi_shortcode"> width widthunit
1314
  </table>
1315
 
1316
  <hr id="layout" />
1317
+ <h3 id="sbi_layout_heading"><?php _e('Layout', 'instagram-feed'); ?></h3>
1318
 
1319
+ <table class="form-table" aria-describedby="sbi_layout_heading">
1320
  <tbody>
1321
  <?php
1322
  $selected_type = isset( $sb_instagram_layout_type ) ? $sb_instagram_layout_type : 'grid';
1504
  <?php submit_button(); ?>
1505
 
1506
  <hr id="photos" />
1507
+ <h3 id="sbi_photos_heading"><?php _e("Photos", 'instagram-feed'); ?></h3>
1508
+ <table class="form-table" aria-describedby="sbi_photos_heading">
 
1509
  <tbody>
1510
  <tr valign="top">
1511
  <th scope="row"><label><?php esc_html_e('Sort Photos By', 'instagram-feed'); ?></label><code class="sbi_shortcode"> sortby
1537
  </tbody>
1538
  </table>
1539
 
1540
+ <span><a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><strong>+</strong> <?php esc_html_e('Show Pro Options', 'instagram-feed'); ?></a></span>
1541
 
1542
  <div class="sbi-pro-options">
1543
  <p class="sbi-upgrade-link">
1544
  <i class="fa fa-rocket" aria-hidden="true"></i>&nbsp; <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=general" target="_blank"><?php esc_html_e('Upgrade to Pro to enable these settings', 'instagram-feed'); ?></a>
1545
  </p>
1546
+ <table class="form-table" aria-describedby="sbi-mediatype-desc">
1547
  <tbody>
1548
  <tr valign="top" class="sbi_pro">
1549
+ <th scope="row"><label id="sbi-mediatype-desc"><?php esc_html_e('Media Type to Display','instagram-feed'); ?></label></th>
1550
  <td>
1551
  <select name="sb_instagram_media_type" disabled>
1552
  <option value="all"><?php esc_html_e('All','instagram-feed'); ?></option>
1577
 
1578
 
1579
  <hr />
1580
+ <h3 id="sbi-hoverstyle-desc"><?php esc_html_e('Photo Hover Style','instagram-feed'); ?></h3>
1581
 
1582
  <p style="padding-bottom: 18px;">
1583
  <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=photohover" target="_blank"><?php esc_html_e('Upgrade to Pro to enable Photo Hover styles','instagram-feed'); ?></a><br />
1584
+ <a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><strong>+</strong> <?php esc_html_e('Show Pro Options','instagram-feed'); ?></a>
1585
  </p>
1586
 
1587
  <div class="sbi-pro-options" style="margin-top: -15px;">
1588
+ <table class="form-table" aria-describedby="sbi-hoverstyle-desc">
1589
  <tbody>
1590
  <tr valign="top" class="sbi_pro">
1591
  <th scope="row"><label><?php esc_html_e('Hover Background Color', 'instagram-feed'); ?></label></th>
1639
 
1640
 
1641
  <hr />
1642
+ <h3 id="sbi-carousel-desc"><?php esc_html_e( 'Carousel', 'instagram-feed' ); ?></h3>
1643
  <p style="padding-bottom: 18px;">
1644
  <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=carousel" target="_blank"><?php esc_html_e('Upgrade to Pro to enable Carousels', 'instagram-feed'); ?></a><br />
1645
+ <a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><strong>+</strong> <?php esc_html_e('Show Pro Options', 'instagram-feed'); ?></a>
1646
  </p>
1647
 
1648
  <div class="sbi-pro-options" style="margin-top: -15px;">
1649
+ <table class="form-table" aria-describedby="sbi-carousel-desc">
1650
  <tbody>
1651
  <tr valign="top" class="sbi_pro">
1652
  <th scope="row"><label><?php esc_html_e("Enable Carousel", 'instagram-feed'); ?></label></th>
1687
 
1688
 
1689
  <hr id="headeroptions" />
1690
+ <h3 id="sbi_header_heading"><?php _e("Header", 'instagram-feed'); ?></h3>
1691
+ <table class="form-table" aria-describedby="sbi_header_heading">
1692
  <tbody>
1693
  <tr valign="top">
1694
  <th scope="row"><label><?php esc_html_e("Show Feed Header", 'instagram-feed'); ?></label><code class="sbi_shortcode"> showheader
1754
  </tbody>
1755
  </table>
1756
 
1757
+ <span><a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><strong>+</strong> <?php esc_html_e('Show Pro Options', 'instagram-feed'); ?></a></span>
1758
 
1759
  <div class="sbi-pro-options">
1760
  <p class="sbi-upgrade-link">
1761
  <i class="fa fa-rocket" aria-hidden="true"></i>&nbsp; <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=header" target="_blank"><?php esc_html_e('Upgrade to Pro to enable these settings', 'instagram-feed'); ?></a>
1762
  </p>
1763
+ <table class="form-table sbi-expandable-options" aria-describedby="sbi-headerstylesub-desc">
1764
+ <tbody>
1765
+
1766
+ <tr valign="top">
1767
+ <th scope="row" id="sbi-headerstylesub-desc"><label><?php _e('Header Style', 'instagram-feed'); ?></label><code class="sbi_shortcode"> headerstyle
1768
+ Eg: headerstyle=boxed</code></th>
1769
+ <td>
1770
  <select name="sb_instagram_header_style" style="float: left;">
1771
  <option value="circle"><?php esc_html_e('Standard','instagram-feed'); ?></option>
1772
  <option value="boxed"><?php esc_html_e('Boxed','instagram-feed'); ?></option>
1789
 
1790
 
1791
  <hr />
1792
+ <h3 id="sbi_caption_heading"><?php esc_html_e("Caption", 'instagram-feed'); ?></h3>
1793
  <p style="padding-bottom: 18px;">
1794
  <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=caption" target="_blank"><?php esc_html_e("Upgrade to Pro to enable Photo Captions", 'instagram-feed'); ?></a><br />
1795
+ <a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><strong>+</strong> <?php esc_html_e("Show Pro Options", 'instagram-feed'); ?></a>
1796
  </p>
1797
 
1798
  <div class="sbi-pro-options" style="margin-top: -15px;">
1799
+ <table class="form-table" aria-describedby="sbi_caption_heading">
1800
  <tbody>
1801
  <tr valign="top" class="sbi_pro">
1802
  <th scope="row"><label><?php esc_html_e("Show Caption", 'instagram-feed'); ?></label></th>
1845
 
1846
 
1847
  <hr />
1848
+ <h3 id="sbi_likescomments_heading"><?php esc_html_e("Likes &amp; Comments", 'instagram-feed'); ?></h3>
1849
  <p style="padding-bottom: 18px;">
1850
  <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=stats" target="_blank"><?php esc_html_e("Upgrade to Pro to enable Likes &amp; Comments", 'instagram-feed'); ?></a><br />
1851
+ <a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><strong>+</strong> <?php esc_html_e("Show Pro Options", 'instagram-feed'); ?></a>
1852
  </p>
1853
 
1854
  <div class="sbi-pro-options" style="margin-top: -15px;">
1855
+ <table class="form-table" aria-describedby="sbi_likescomments_heading">
1856
  <tbody>
1857
  <tr valign="top" class="sbi_pro">
1858
  <th scope="row"><label><?php esc_html_e("Show Icons", 'instagram-feed'); ?></label></th>
1893
 
1894
 
1895
  <hr />
1896
+ <h3 id="sbi-lightboxcomments-heading"><?php esc_html_e('Lightbox Comments', 'instagram-feed'); ?></h3>
1897
 
1898
  <p style="padding-bottom: 18px;">
1899
  <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=comments" target="_blank"><?php esc_html_e('Upgrade to Pro to enable Comments', 'instagram-feed'); ?></a><br />
1900
+ <a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><strong>+</strong> <?php esc_html_e('Show Pro Options', 'instagram-feed'); ?></a>
1901
  </p>
1902
 
1903
  <div class="sbi-pro-options" style="margin-top: -15px;">
1904
+ <table class="form-table" aria-describedby="sbi-lightboxcomments-heading">
1905
  <tbody>
1906
 
1907
  <tr valign="top" class="sbi_pro">
1929
 
1930
 
1931
  <hr id="loadmore" />
1932
+ <h3 id="sbi_button_heading"><?php _e("'Load More' Button", 'instagram-feed'); ?></h3>
1933
+ <table class="form-table" aria-describedby="sbi_button_heading">
1934
  <tbody>
1935
  <tr valign="top">
1936
  <th scope="row"><label><?php esc_html_e("Show the 'Load More' button", 'instagram-feed'); ?></label><code class="sbi_shortcode"> showbutton
1966
  <?php submit_button(); ?>
1967
 
1968
  <hr id="follow" />
1969
+ <h3 id="sbi_follow_heading"><?php _e("'Follow' Button", 'instagram-feed'); ?></h3>
1970
+ <table class="form-table" aria-describedby="sbi_follow_heading">
1971
  <tbody>
1972
  <tr valign="top">
1973
  <th scope="row"><label><?php esc_html_e("Show the Follow button", 'instagram-feed'); ?></label><code class="sbi_shortcode"> showfollow
2002
  </table>
2003
 
2004
  <hr id="filtering" />
2005
+ <h3 id="sbi-filter-heading"><?php esc_html_e('Post Filtering', 'instagram-feed'); ?></h3>
2006
 
2007
  <p style="padding-bottom: 18px;">
2008
  <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=filtering" target="_blank"><?php esc_html_e('Upgrade to Pro to enable Post Filtering options', 'instagram-feed'); ?></a><br />
2009
+ <a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><strong>+</strong> <?php esc_html_e('Show Pro Options', 'instagram-feed'); ?></a>
2010
  </p>
2011
 
2012
  <div class="sbi-pro-options" style="margin-top: -15px;">
2013
 
2014
+ <table class="form-table" aria-describedby="sbi-filter-heading">
2015
  <tbody>
2016
  <tr valign="top" class="sbi_pro">
2017
  <th scope="row"><label><?php esc_html_e('Remove photos containing these words or hashtags', 'instagram-feed'); ?></label></th>
2052
 
2053
 
2054
  <hr id="moderation" />
2055
+ <h3 id="sbi-moderation-heading"><?php esc_html_e('Moderation', 'instagram-feed'); ?></h3>
2056
 
2057
  <p style="padding-bottom: 18px;">
2058
  <a href="https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=moderation" target="_blank"><?php esc_html_e('Upgrade to Pro to enable Moderation options', 'instagram-feed'); ?></a><br />
2059
+ <a href="javascript:void(0);" class="button button-secondary sbi-show-pro"><strong>+</strong> <?php esc_html_e('Show Pro Options', 'instagram-feed'); ?></a>
2060
  </p>
2061
 
2062
  <div class="sbi-pro-options" style="margin-top: -15px;">
2063
+ <table class="form-table" aria-describedby="sbi-moderation-heading">
2064
  <tbody>
2065
  <tr valign="top" class="sbi_pro">
2066
  <th scope="row"><label><?php esc_html_e('Moderation Type', 'instagram-feed'); ?></label></th>
2068
  <input class="sb_instagram_moderation_mode" checked="checked" disabled type="radio" value="visual" style="margin-top: 0;" /><label><?php esc_html_e('Visual', 'instagram-feed'); ?></label>
2069
  <input class="sb_instagram_moderation_mode" disabled type="radio" value="manual" style="margin-top: 0; margin-left: 10px;"/><label><?php esc_html_e('Manual', 'instagram-feed'); ?></label>
2070
 
2071
+ <p class="sbi_tooltip" style="display: block;"><?php _e("<strong>Visual Moderation Mode</strong><br />This adds a button to each feed that will allow you to hide posts, block users, and create white lists from the front end using a visual interface. Visit <a href='https://smashballoon.com/guide-to-moderation-mode/?utm_campaign=instagram-free&utm_source=settings&utm_medium=moderationmode' target='_blank'>this page</a> for details", 'instagram-feed'); ?></p>
2072
 
2073
  </td>
2074
  </tr>
2101
  </div>
2102
 
2103
  <hr id="gdpr" />
2104
+ <h3 id="sbi-gdpr-heading"><?php esc_html_e('GDPR', 'instagram-feed'); ?></h3>
2105
 
2106
+ <table class="form-table" aria-describedby="sbi-gdpr-heading">
2107
  <tbody>
2108
  <tr>
2109
  <th class="bump-left"><label class="bump-left"><?php esc_html_e("Enable GDPR settings", 'instagram-feed'); ?></label><code class="sbi_shortcode"> gdpr
2179
  <div class="sbi_active">
2180
  <p>
2181
  <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check-circle" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="svg-inline--fa fa-check-circle fa-w-16 fa-2x"><path fill="currentColor" d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z" class=""></path></svg>
2182
+ <strong><?php echo sprintf( __( '%s detected', 'instagram-feed' ), $active_plugin ); ?></strong>
2183
  <br />
2184
  <?php esc_html_e( 'Some Instagram Feed features will be limited for visitors to ensure GDPR compliance until they give consent.', 'instagram-feed' ); ?>
2185
  <a href="JavaScript:void(0);" class="sbi_show_gdpr_list"><?php esc_html_e( 'What will be limited?', 'instagram-feed' ); ?></a>
2218
  </table>
2219
 
2220
  <hr id="customcss" />
2221
+ <h3 id="sbi-misc-heading"><?php esc_html_e('Misc', 'instagram-feed'); ?></h3>
2222
 
2223
+ <table class="form-table" aria-describedby="sbi-misc-heading">
2224
  <tbody>
2225
  <tr valign="top">
2226
+ <th scope="row" style="padding-bottom: 0;">
2227
  <?php _e('<strong style="font-size: 15px;">Custom CSS</strong><br />Enter your own custom CSS in the box below', 'instagram-feed'); ?>
2228
+ </th>
2229
  </tr>
2230
  <tr valign="top">
2231
  <td>
2244
  </tr>
2245
  </tbody>
2246
  </table>
2247
+ <table class="form-table" aria-describedby="sbi-misc-heading">
2248
  <tbody>
2249
 
2250
  <tr valign="top">
2347
  </tr>
2348
  </tbody>
2349
  </table>
2350
+ <table class="form-table" aria-describedby="sbi-misc-heading">
2351
  <tbody>
2352
  <tr>
2353
  <th class="bump-left"><label class="bump-left"><?php esc_html_e("Enable Custom Templates", 'instagram-feed'); ?></label></th>
2495
  </p>
2496
  <p><?php esc_html_e("See the table below for a full list of available shortcode options:", 'instagram-feed'); ?></p>
2497
 
2498
+ <p id="sbi-proonly-heading"><span class="sbi_table_key"></span><?php esc_html_e('Pro version only', 'instagram-feed'); ?></p>
2499
 
2500
+ <table class="sbi_shortcode_table" aria-describedby="sbi-proonly-heading">
2501
  <tbody>
2502
  <tr valign="top">
2503
  <th scope="row"><?php esc_html_e('Shortcode option', 'instagram-feed'); ?></th>
2877
 
2878
  <p>
2879
  <span class="sbi-support-title"><i class="fa fa-youtube-play" aria-hidden="true"></i>&nbsp; <a
2880
+ href="https://www.youtube.com/embed/q6ZXVU4g970" target="_blank" rel="noopener noreferrer"
2881
  id="sbi-play-support-video"><?php esc_html_e( 'Watch a Video', 'instagram-feed' ); ?></a></span>
2882
+ <?php _e( "Watch a short video demonstrating how to set up, customize and use the plugin.<br /><strong>Please note</strong> that the video shows the set up and use of the <strong><a href='https://smashballoon.com/instagram-feed/?utm_campaign=instagram-free&utm_source=settings&utm_medium=general' target='_blank'>Pro version</a></strong> of the plugin, but the process is the same for this free version. The only difference is some of the features available.", 'instagram-feed' ); ?>
2883
 
2884
  <iframe id="sbi-support-video"
2885
  src="//www.youtube.com/embed/q6ZXVU4g970?theme=light&amp;showinfo=0&amp;controls=2" width="960"
2886
+ height="540" frameborder="0" allowfullscreen="allowfullscreen" title="<?php esc_attr_e( 'Watch a Video', 'instagram-feed' ); ?>"></iframe>
2887
  </p>
2888
 
2889
  <p>
2896
  <div class="sbi-support-faqs">
2897
 
2898
  <ul>
2899
+ <li><strong><?php esc_html_e( 'FAQs', 'instagram-feed' ); ?></strong></li>
2900
  <li>&bull;&nbsp; <?php _e( '<a href="https://smashballoon.com/my-photos-wont-load/?utm_campaign=instagram-free&utm_source=support&utm_medium=faqsnophotos" target="_blank">My Instagram Feed Won\'t Load</a>', 'instagram-feed' ); ?></li>
2901
  <li>&bull;&nbsp; <?php _e( '<a href="https://smashballoon.com/my-instagram-access-token-keep-expiring/?utm_campaign=instagram-free&utm_source=support&utm_medium=faqsexpiring" target="_blank">My Access Token Keeps Expiring</a>', 'instagram-feed' ); ?></li>
2902
  <li style="margin-top: 8px; font-size: 12px;"><a href="https://smashballoon.com/instagram-feed/support/faq/?utm_campaign=instagram-free&utm_source=support&utm_medium=faqs" target="_blank"><?php esc_html_e( 'See All', 'instagram-feed' ); ?><i class="fa fa-chevron-right" aria-hidden="true"></i></a></li>
2903
  </ul>
2904
 
2905
  <ul>
2906
+ <li><strong><?php esc_html_e("Documentation", 'instagram-feed'); ?></strong></li>
2907
  <li>&bull;&nbsp; <?php _e( '<a href="https://smashballoon.com/instagram-feed/free?utm_campaign=instagram-free&utm_source=support&utm_medium=installation" target="_blank">Installation and Configuration</a>', 'instagram-feed' ); ?></li>
2908
  <li>&bull;&nbsp; <?php _e( '<a href="https://smashballoon.com/display-multiple-instagram-feeds/?utm_campaign=instagram-free&utm_source=support&utm_medium=multiple" target="_blank">Displaying multiple feeds</a>', 'instagram-feed' ); ?></li>
2909
  <li>&bull;&nbsp; <?php _e( '<a href="https://smashballoon.com/instagram-feed-faq/customization/?utm_campaign=instagram-free&utm_source=support&utm_medium=customizing" target="_blank">Customizing your Feed</a>', 'instagram-feed' ); ?></li>
2914
  <span class="sbi-support-title"><i class="fa fa-envelope" aria-hidden="true"></i>&nbsp; <a
2915
  href="https://smashballoon.com/instagram-feed/support/?utm_campaign=instagram-free&utm_source=support&utm_medium=contact"
2916
  target="_blank"><?php esc_html_e( 'Request Support', 'instagram-feed' ); ?></a></span>
2917
+ <?php _e( 'Still need help? Submit a ticket and one of our support experts will get back to you as soon as possible.<br /><strong>Important:</strong> Please include your <strong>System Info</strong> below with all support requests.', 'instagram-feed' ); ?>
2918
  </p>
2919
  </div>
2920
 
3280
 
3281
  <?php
3282
  } //End Support tab
3283
+
3284
 
3285
  if( $sbi_active_tab == 'more' ) { //Start More Social Feeds tab
3286
 
3558
  <img src="<?php echo SBI_PLUGIN_URL . 'img/instagram-pro-promo.png?2019'; ?>" alt="<?php esc_attr_e( 'Instagram Feed Pro', 'instagram-feed' ); ?>">
3559
  </a>
3560
 
3561
+ <p class="sbi_plugins_promo dashicons-before dashicons-admin-plugins"> <?php _e('Check out our other free plugins: <a href="https://wordpress.org/plugins/custom-facebook-feed/" target="_blank" rel="noopener noreferrer">Facebook</a>, <a href="https://wordpress.org/plugins/custom-twitter-feeds/" target="_blank" rel="noopener noreferrer">Twitter</a>, and <a href="https://wordpress.org/plugins/feeds-for-youtube/" target="_blank" rel="noopener noreferrer">YouTube</a>.', 'instagram-feed' ); ?></p>
3562
 
3563
  <div class="sbi_share_plugin">
3564
  <h3><?php esc_html_e('Like the plugin? Help spread the word!', 'instagram-feed'); ?></h3>
3568
 
3569
  </div> <!-- end #sbi_admin -->
3570
 
3571
+ <?php } //End Settings page
inc/admin/templates/locator-summary.php CHANGED
@@ -22,13 +22,13 @@ $database_settings = sbi_get_database_settings();
22
  if ( ! empty( $locator_section['results'] ) ) : ?>
23
  <div class="sbi-single-location">
24
  <h4><?php echo esc_html( $locator_section['label'] ); ?></h4>
25
- <table class="widefat striped">
26
  <thead>
27
  <tr>
28
- <th><?php esc_html_e( 'Type', 'instagram-feed' ); ?></th>
29
- <th><?php esc_html_e( 'Sources', 'instagram-feed' ); ?></th>
30
- <th><?php esc_html_e( 'Shortcode', 'instagram-feed' ); ?></th>
31
- <th><?php esc_html_e( 'Location', 'instagram-feed' ); ?></th>
32
  </tr>
33
  </thead>
34
  <tbody>
22
  if ( ! empty( $locator_section['results'] ) ) : ?>
23
  <div class="sbi-single-location">
24
  <h4><?php echo esc_html( $locator_section['label'] ); ?></h4>
25
+ <table class="widefat striped" aria-describedby="sbi-locator-desc">
26
  <thead>
27
  <tr>
28
+ <th scope="row"><?php esc_html_e( 'Type', 'instagram-feed' ); ?></th>
29
+ <th scope="row"><?php esc_html_e( 'Sources', 'instagram-feed' ); ?></th>
30
+ <th scope="row"><?php esc_html_e( 'Shortcode', 'instagram-feed' ); ?></th>
31
+ <th scope="row"><?php esc_html_e( 'Location', 'instagram-feed' ); ?></th>
32
  </tr>
33
  </thead>
34
  <tbody>
inc/class-sb-instagram-gdpr-integrations.php CHANGED
@@ -120,7 +120,7 @@ class SB_Instagram_GDPR_Integrations {
120
  if ( ! is_wp_error( $image_editor ) ) {
121
  $sbi_statuses_option['gdpr']['image_editor'] = true;
122
  } else {
123
- $test_image = 'http://plugin.smashballoon.com/editor-test.png';
124
 
125
  $image_editor = wp_get_image_editor( $test_image );
126
  if ( ! is_wp_error( $image_editor ) ) {
120
  if ( ! is_wp_error( $image_editor ) ) {
121
  $sbi_statuses_option['gdpr']['image_editor'] = true;
122
  } else {
123
+ $test_image = 'https://plugin.smashballoon.com/editor-test.png';
124
 
125
  $image_editor = wp_get_image_editor( $test_image );
126
  if ( ! is_wp_error( $image_editor ) ) {
inc/class-sb-instagram-oembed.php CHANGED
@@ -278,6 +278,12 @@ class SB_Instagram_Oembed
278
  }
279
 
280
  $post_ID = get_the_ID();
 
 
 
 
 
 
281
  $done_checking = (int)get_post_meta( $post_ID, '_sbi_oembed_done_checking', true ) === 1;
282
 
283
  if ( ! $done_checking ) {
@@ -340,4 +346,4 @@ class SB_Instagram_Oembed
340
  function sbiOembedInit() {
341
  return new SB_Instagram_Oembed();
342
  }
343
- sbiOembedInit();
278
  }
279
 
280
  $post_ID = get_the_ID();
281
+
282
+ //Don't make the check on WC orders
283
+ if ( 'shop_order' === get_post_type( $post_ID ) ) {
284
+ return;
285
+ }
286
+
287
  $done_checking = (int)get_post_meta( $post_ID, '_sbi_oembed_done_checking', true ) === 1;
288
 
289
  if ( ! $done_checking ) {
346
  function sbiOembedInit() {
347
  return new SB_Instagram_Oembed();
348
  }
349
+ sbiOembedInit();
inc/class-sb-instagram-settings.php CHANGED
@@ -697,17 +697,11 @@ class SB_Instagram_Settings {
697
  }
698
 
699
  /**
700
- * Compares given array with an allow list of
701
- * setting keys and how they should be sanitized
702
- *
703
- * @param array $atts
704
  *
705
  * @return array
706
  */
707
- public static function sanitize_raw_atts( $atts ) {
708
-
709
- $sanitized_atts = array();
710
-
711
  $allowed_atts = array(
712
  'id' => array(
713
  'method' => 'alpha_numeric_and_comma',
@@ -822,7 +816,7 @@ class SB_Instagram_Settings {
822
  'method' => 'page_load_only',
823
  ),
824
  'user' => array(
825
- 'method' => 'alpha_numeric_and_comma',
826
  'allowed_vals' => 'any'
827
  ),
828
  'feedid' => array(
@@ -843,6 +837,22 @@ class SB_Instagram_Settings {
843
  )
844
  );
845
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
846
  foreach ( $atts as $key => $value ) {
847
  $value = (string)$value;
848
 
@@ -851,15 +861,45 @@ class SB_Instagram_Settings {
851
 
852
  switch ( $sanitization_method ) {
853
  case 'enum' :
854
- if ( in_array( $value, $allowed_atts[ $key ]['allowed_vals'] ) ) {
855
  $sanitized_atts[ $key ] = sanitize_text_field( $value );
856
  }
857
  break;
 
 
 
 
 
 
 
 
 
 
858
  case 'alpha_numeric_and_comma' :
859
- $sanitized_atts[ $key ] = preg_replace( "/[^A-Za-z0-9,]/", '', $value );
 
860
  break;
861
  case 'feedid_chars' :
862
- $sanitized_atts[ $key ] = preg_replace( "/[^A-Za-z0-9#_%-\/?]/", '', urlencode( $value ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
863
  break;
864
  case 'intval' :
865
  $value = intval( $value );
@@ -877,7 +917,7 @@ class SB_Instagram_Settings {
877
  } elseif ( $value < (float)$allowed_atts[ $key ]['allowed_vals'] ) {
878
  $sanitized_atts[ $key ] = $value;
879
  }
880
-
881
  if ( floor( $value ) === $value ) {
882
  $sanitized_atts[ $key ] = (int)$value;
883
  }
@@ -892,6 +932,36 @@ class SB_Instagram_Settings {
892
  $sanitized_atts[ $key ] = 'false';
893
  }
894
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
895
  break;
896
  }
897
  }
697
  }
698
 
699
  /**
700
+ * Attributes allowed in shortcodes and how they are sanitized
 
 
 
701
  *
702
  * @return array
703
  */
704
+ public static function get_allowed_atts() {
 
 
 
705
  $allowed_atts = array(
706
  'id' => array(
707
  'method' => 'alpha_numeric_and_comma',
816
  'method' => 'page_load_only',
817
  ),
818
  'user' => array(
819
+ 'method' => 'feedid_chars',
820
  'allowed_vals' => 'any'
821
  ),
822
  'feedid' => array(
837
  )
838
  );
839
 
840
+ return $allowed_atts;
841
+ }
842
+
843
+ /**
844
+ * Compares given array with an allow list of
845
+ * setting keys and how they should be sanitized
846
+ *
847
+ * @param array $atts
848
+ *
849
+ * @return array
850
+ */
851
+ public static function sanitize_raw_atts( $atts ) {
852
+ $sanitized_atts = array();
853
+
854
+ $allowed_atts = SB_Instagram_Settings::get_allowed_atts();
855
+
856
  foreach ( $atts as $key => $value ) {
857
  $value = (string)$value;
858
 
861
 
862
  switch ( $sanitization_method ) {
863
  case 'enum' :
864
+ if ( in_array( $value, $allowed_atts[ $key ]['allowed_vals'], true ) ) {
865
  $sanitized_atts[ $key ] = sanitize_text_field( $value );
866
  }
867
  break;
868
+ case 'enum_array' :
869
+ $values_array = explode( ',', str_replace( ' ', '', $value ) );
870
+ $filtered = array();
871
+ foreach ( $values_array as $single_value ) {
872
+ if ( in_array( $single_value, $allowed_atts[ $key ]['allowed_vals'], true ) ) {
873
+ $filtered[] = $single_value;
874
+ }
875
+ }
876
+ $sanitized_atts[ $key ] = implode( ',', $filtered );
877
+ break;
878
  case 'alpha_numeric_and_comma' :
879
+ $value = str_replace( ' ', '', $value );
880
+ $sanitized_atts[ $key ] = preg_replace( "/[^A-Za-z0-9_,]/", '', $value );
881
  break;
882
  case 'feedid_chars' :
883
+ $value = str_replace( ' ', '', $value );
884
+ $feedid_chars_with_expected = preg_replace( "/[^A-Za-z0-9#_\-\/?.,]/", '', str_replace('%','', urlencode( $value ) ) );
885
+ if ( $feedid_chars_with_expected !== str_replace('%','', urlencode( $value ) ) ) {
886
+ $sanitized_atts[ $key ] = '';
887
+ } else {
888
+ $sanitized_atts[ $key ] = sanitize_text_field( $value );
889
+ }
890
+ break;
891
+ case 'user_chars' :
892
+ $value = str_replace( ' ', '', $value );
893
+ $sanitized_atts[ $key ] = preg_replace( "/[^A-Za-z0-9_,]/", '', $value );
894
+ break;
895
+ case 'hashtag_chars' :
896
+ $value = str_replace( ' ', '', $value );
897
+ $hashtag_with_expected = preg_replace( "/[^A-Za-z0-9#_\-\/?.,]/", '', str_replace('%','', urlencode( $value ) ) );
898
+ if ( $hashtag_with_expected !== str_replace('%','', urlencode( $value ) ) ) {
899
+ $sanitized_atts[ $key ] = '';
900
+ } else {
901
+ $sanitized_atts[ $key ] = sanitize_text_field( $value );
902
+ }
903
  break;
904
  case 'intval' :
905
  $value = intval( $value );
917
  } elseif ( $value < (float)$allowed_atts[ $key ]['allowed_vals'] ) {
918
  $sanitized_atts[ $key ] = $value;
919
  }
920
+
921
  if ( floor( $value ) === $value ) {
922
  $sanitized_atts[ $key ] = (int)$value;
923
  }
932
  $sanitized_atts[ $key ] = 'false';
933
  }
934
 
935
+ break;
936
+ case 'color' :
937
+ if ( strpos( $value, 'rgb' ) === false ) {
938
+ $sanitized_atts[ $key ] = sanitize_hex_color( $value );
939
+ } else {
940
+ $sanitized_atts[ $key ] = preg_replace( "/[^rgba0-9.,()]/", '', $value );
941
+ }
942
+
943
+ break;
944
+ case 'pxsize' :
945
+ if ( strpos( $value, 'inherit' ) !== false ) {
946
+ $sanitized_atts[ $key ] = 'inherit';
947
+ } else {
948
+ $sanitized_atts[ $key ] = preg_replace( "/[^0-9]/", '', $value );
949
+ }
950
+
951
+ break;
952
+ case 'numeric_and_comma' :
953
+ $sanitized_atts[ $key ] = preg_replace( "/[^0-9,]/", '', $value );
954
+
955
+ break;
956
+ case 'inc_ex' :
957
+ $values_array = explode( ',', str_replace( ' ', '', $value ) );
958
+ $filtered = array();
959
+ foreach ( $values_array as $single_value ) {
960
+ if ( strlen( $single_value ) < $allowed_atts[ $key ]['allowed_vals'] ) {
961
+ $filtered[] = $single_value;
962
+ }
963
+ }
964
+ $sanitized_atts[ $key ] = implode( ',', $filtered );
965
  break;
966
  }
967
  }
inc/if-functions.php CHANGED
@@ -41,7 +41,7 @@ function display_instagram( $atts = array() ) {
41
  ob_start(); ?>
42
  <div id="sbi_mod_error" <?php echo $style; ?>>
43
  <span><?php esc_html_e('This error message is only visible to WordPress admins', 'instagram-feed' ); ?></span><br />
44
- <p><b><?php esc_html_e( 'Error: No connected account.', 'instagram-feed' ); ?></b>
45
  <p><?php esc_html_e( 'Please go to the Instagram Feed settings page to connect an account.', 'instagram-feed' ); ?></p>
46
  </div>
47
  <?php
@@ -1228,7 +1228,7 @@ function sb_instagram_custom_css() {
1228
  isset($options[ 'sb_instagram_custom_css' ]) ? $sb_instagram_custom_css = trim($options['sb_instagram_custom_css']) : $sb_instagram_custom_css = '';
1229
 
1230
  //Show CSS if an admin (so can see Hide Photos link), if including Custom CSS or if hiding some photos
1231
- ( current_user_can( 'edit_posts' ) || !empty($sb_instagram_custom_css) || !empty($sb_instagram_hide_photos) ) ? $sbi_show_css = true : $sbi_show_css = false;
1232
 
1233
  if( $sbi_show_css ) echo '<!-- Instagram Feed CSS -->';
1234
  if( $sbi_show_css ) echo "\r\n";
41
  ob_start(); ?>
42
  <div id="sbi_mod_error" <?php echo $style; ?>>
43
  <span><?php esc_html_e('This error message is only visible to WordPress admins', 'instagram-feed' ); ?></span><br />
44
+ <p><strong><?php esc_html_e( 'Error: No connected account.', 'instagram-feed' ); ?></strong>
45
  <p><?php esc_html_e( 'Please go to the Instagram Feed settings page to connect an account.', 'instagram-feed' ); ?></p>
46
  </div>
47
  <?php
1228
  isset($options[ 'sb_instagram_custom_css' ]) ? $sb_instagram_custom_css = trim($options['sb_instagram_custom_css']) : $sb_instagram_custom_css = '';
1229
 
1230
  //Show CSS if an admin (so can see Hide Photos link), if including Custom CSS or if hiding some photos
1231
+ ( current_user_can( 'edit_posts' ) || !empty($sb_instagram_custom_css) ) ? $sbi_show_css = true : $sbi_show_css = false;
1232
 
1233
  if( $sbi_show_css ) echo '<!-- Instagram Feed CSS -->';
1234
  if( $sbi_show_css ) echo "\r\n";
instagram-feed.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Smash Balloon Instagram Feed
4
  Plugin URI: https://smashballoon.com/instagram-feed
5
  Description: Display beautifully clean, customizable, and responsive Instagram feeds.
6
- Version: 2.9.5
7
  Author: Smash Balloon
8
  Author URI: https://smashballoon.com/
9
  License: GPLv2 or later
@@ -23,7 +23,7 @@ along with this program; if not, write to the Free Software
23
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24
  */
25
  if ( ! defined( 'SBIVER' ) ) {
26
- define( 'SBIVER', '2.9.5' );
27
  }
28
  // Db version.
29
  if ( ! defined( 'SBI_DBVERSION' ) ) {
@@ -834,4 +834,4 @@ if ( function_exists( 'sb_instagram_feed_init' ) ) {
834
 
835
  }
836
  add_action( 'sb_instagram_twicedaily', 'sbi_do_token_refreshes' );
837
- }
3
  Plugin Name: Smash Balloon Instagram Feed
4
  Plugin URI: https://smashballoon.com/instagram-feed
5
  Description: Display beautifully clean, customizable, and responsive Instagram feeds.
6
+ Version: 2.9.6
7
  Author: Smash Balloon
8
  Author URI: https://smashballoon.com/
9
  License: GPLv2 or later
23
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24
  */
25
  if ( ! defined( 'SBIVER' ) ) {
26
+ define( 'SBIVER', '2.9.6' );
27
  }
28
  // Db version.
29
  if ( ! defined( 'SBI_DBVERSION' ) ) {
834
 
835
  }
836
  add_action( 'sb_instagram_twicedaily', 'sbi_do_token_refreshes' );
837
+ }
js/sb-instagram-admin-2-2.js CHANGED
@@ -374,7 +374,7 @@ jQuery(document).ready(function($) {
374
  //sbi-bus-account-error
375
  if (window.location.hash && window.location.hash === '#test') {
376
  window.location.hash = '';
377
- $('#sbi-bus-account-error').html('<p style="margin-top: 5px;"><b style="font-size: 16px">Couldn\'t connect an account with this access token</b><br />' +
378
  'Please check to make sure that the token you entered is correct.</p>')
379
  }
380
 
@@ -473,7 +473,7 @@ jQuery(document).ready(function($) {
473
  function sbiInitUserRemove(el,targetClass) {
474
  el.on('click',function(event) {
475
  event.preventDefault();
476
- targetClass = $('input[name=sb_instagram_type]:checked').val();
477
 
478
  var $clicked = $(this),
479
  accountID = $clicked.closest('.sbi_connected_account').attr('data-userid');
@@ -492,7 +492,7 @@ jQuery(document).ready(function($) {
492
 
493
  function sbiInitUserAdd(el,targetClass) {
494
  el.on('click',function(event) {
495
- targetClass = $('input[name=sb_instagram_type]:checked').val();
496
  event.preventDefault();
497
  var $clicked = $(this),
498
  $closest = $clicked.closest('.sbi_connected_account'),
374
  //sbi-bus-account-error
375
  if (window.location.hash && window.location.hash === '#test') {
376
  window.location.hash = '';
377
+ $('#sbi-bus-account-error').html('<p style="margin-top: 5px;"><strong style="font-size: 16px">Couldn\'t connect an account with this access token</strong><br />' +
378
  'Please check to make sure that the token you entered is correct.</p>')
379
  }
380
 
473
  function sbiInitUserRemove(el,targetClass) {
474
  el.on('click',function(event) {
475
  event.preventDefault();
476
+ var targetClass = $('input[name=sb_instagram_type]:checked').val();
477
 
478
  var $clicked = $(this),
479
  accountID = $clicked.closest('.sbi_connected_account').attr('data-userid');
492
 
493
  function sbiInitUserAdd(el,targetClass) {
494
  el.on('click',function(event) {
495
+ var targetClass = $('input[name=sb_instagram_type]:checked').val();
496
  event.preventDefault();
497
  var $clicked = $(this),
498
  $closest = $clicked.closest('.sbi_connected_account'),
languages/instagram-feed.pot CHANGED
@@ -107,9 +107,9 @@ msgstr ""
107
  #: inc/admin/actions.php:1073
108
  #, php-format
109
  msgid ""
110
- "<b style=\"font-weight: 900;\">Exclusive offer!</b> We don't run promotions "
111
- "very often, but for a limited time we're offering <b style=\"font-weight: "
112
- "900;\">60% off</b> our Pro version to all users of our free Instagram Feed "
113
  "plugin."
114
  msgstr ""
115
 
@@ -124,9 +124,9 @@ msgstr ""
124
  #: inc/admin/actions.php:1091
125
  #, php-format
126
  msgid ""
127
- "<b style=\"font-weight: 900;\">Black Friday/Cyber Monday Deal!</b> Thank you "
128
  "for using our free Instagram Feed plugin. For a limited time, we're offering "
129
- "<b style=\"font-weight: 900;\">60% off</b> the Pro version for all of our "
130
  "users."
131
  msgstr ""
132
 
@@ -208,12 +208,12 @@ msgid ""
208
  msgstr ""
209
 
210
  #: inc/admin/main.php:665
211
- msgid "<b>Action Needed:</b> Reconnect this account to allow feed to update."
212
  msgstr ""
213
 
214
  #: inc/admin/main.php:667
215
  msgid ""
216
- "<b>Action Needed:</b> Reconnect this account before March 31, 2020 to avoid "
217
  "disruption with this feed."
218
  msgstr ""
219
 
@@ -303,15 +303,15 @@ msgstr ""
303
 
304
  #: inc/admin/main.php:815
305
  msgid ""
306
- "<p><b>Displaying Posts from Your User Account</b><br />Simply connect an "
307
- "account using the button above.</p><p style='padding-top:8px;'><b>Displaying "
308
- "Posts from Other Instagram Accounts</b><br />Due to recent changes in the "
309
  "Instagram API it is no longer possible to display photos from other "
310
  "Instagram accounts which you do not have access to. You can only display the "
311
  "user feed of an account which you connect above. You can connect as many "
312
  "account as you like by logging in using the button above, or manually copy/"
313
  "pasting an Access Token by selecting the 'Manually Connect an Account' "
314
- "option.</p><p style='padding-top:10px;'><b>Multiple Acounts</b><br />It is "
315
  "only possible to display feeds from Instagram accounts which you own. In "
316
  "order to display feeds from multiple accounts, first connect them above and "
317
  "then use the buttons to add the account either to your primary feed or to "
@@ -409,23 +409,23 @@ msgstr ""
409
 
410
  #: inc/admin/main.php:882
411
  msgid ""
412
- "<b>1. When the page loads</b><br>Selecting this option means that when the "
413
  "cache expires then the plugin will check Facebook for new posts the next "
414
  "time that the feed is loaded. You can choose how long this data should be "
415
  "cached for. If you set the time to 60 minutes then the plugin will clear the "
416
  "cached data after that length of time, and the next time the page is viewed "
417
- "it will check for new data. <b>Tip:</b> If you're experiencing an issue with "
418
  "the plugin not updating automatically then try enabling the setting labeled "
419
- "<b>'Force cache to clear on interval'</b> which is located on the "
420
  "'Customize' tab."
421
  msgstr ""
422
 
423
  #: inc/admin/main.php:884
424
  msgid ""
425
- "<b>2. In the background</b><br>Selecting this option means that the plugin "
426
  "will check for new data in the background so that the feed is updated behind "
427
  "the scenes. You can select at what time and how often the plugin should "
428
- "check for new data using the settings below. <b>Please note</b> that the "
429
  "plugin will initially check for data from Instagram when the page first "
430
  "loads, but then after that will check in the background on the schedule "
431
  "selected - unless the cache is cleared.</p>"
@@ -1222,7 +1222,7 @@ msgstr ""
1222
 
1223
  #: inc/admin/main.php:1783
1224
  msgid ""
1225
- "<b>Visual Moderation Mode</b><br />This adds a button to each feed that will "
1226
  "allow you to hide posts, block users, and create white lists from the front "
1227
  "end using a visual interface. Visit <a href='https://smashballoon.com/guide-"
1228
  "to-moderation-mode/?utm_source=plugin-free&utm_campaign=sbi' "
@@ -1824,9 +1824,9 @@ msgstr ""
1824
  #: inc/admin/main.php:2392
1825
  msgid ""
1826
  "Watch a short video demonstrating how to set up, customize and use the "
1827
- "plugin.<br /><b>Please note</b> that the video shows the set up and use of "
1828
- "the <b><a href='https://smashballoon.com/instagram-feed/?utm_source=plugin-"
1829
- "free&utm_campaign=sbi' target='_blank'>Pro version</a></b> of the plugin, "
1830
  "but the process is the same for this free version. The only difference is "
1831
  "some of the features available."
1832
  msgstr ""
@@ -1893,8 +1893,8 @@ msgstr ""
1893
  #: inc/admin/main.php:2427
1894
  msgid ""
1895
  "Still need help? Submit a ticket and one of our support experts will get "
1896
- "back to you as soon as possible.<br /><b>Important:</b> Please include your "
1897
- "<b>System Info</b> below with all support requests."
1898
  msgstr ""
1899
 
1900
  #: inc/admin/main.php:2433
107
  #: inc/admin/actions.php:1073
108
  #, php-format
109
  msgid ""
110
+ "<strong style=\"font-weight: 900;\">Exclusive offer!</strong> We don't run promotions "
111
+ "very often, but for a limited time we're offering <strong style=\"font-weight: "
112
+ "900;\">60% off</strong> our Pro version to all users of our free Instagram Feed "
113
  "plugin."
114
  msgstr ""
115
 
124
  #: inc/admin/actions.php:1091
125
  #, php-format
126
  msgid ""
127
+ "<strong style=\"font-weight: 900;\">Black Friday/Cyber Monday Deal!</strong> Thank you "
128
  "for using our free Instagram Feed plugin. For a limited time, we're offering "
129
+ "<strong style=\"font-weight: 900;\">60% off</strong> the Pro version for all of our "
130
  "users."
131
  msgstr ""
132
 
208
  msgstr ""
209
 
210
  #: inc/admin/main.php:665
211
+ msgid "<strong>Action Needed:</strong> Reconnect this account to allow feed to update."
212
  msgstr ""
213
 
214
  #: inc/admin/main.php:667
215
  msgid ""
216
+ "<strong>Action Needed:</strong> Reconnect this account before March 31, 2020 to avoid "
217
  "disruption with this feed."
218
  msgstr ""
219
 
303
 
304
  #: inc/admin/main.php:815
305
  msgid ""
306
+ "<p><strong>Displaying Posts from Your User Account</strong><br />Simply connect an "
307
+ "account using the button above.</p><p style='padding-top:8px;'><strong>Displaying "
308
+ "Posts from Other Instagram Accounts</strong><br />Due to recent changes in the "
309
  "Instagram API it is no longer possible to display photos from other "
310
  "Instagram accounts which you do not have access to. You can only display the "
311
  "user feed of an account which you connect above. You can connect as many "
312
  "account as you like by logging in using the button above, or manually copy/"
313
  "pasting an Access Token by selecting the 'Manually Connect an Account' "
314
+ "option.</p><p style='padding-top:10px;'><strong>Multiple Acounts</strong><br />It is "
315
  "only possible to display feeds from Instagram accounts which you own. In "
316
  "order to display feeds from multiple accounts, first connect them above and "
317
  "then use the buttons to add the account either to your primary feed or to "
409
 
410
  #: inc/admin/main.php:882
411
  msgid ""
412
+ "<strong>1. When the page loads</strong><br>Selecting this option means that when the "
413
  "cache expires then the plugin will check Facebook for new posts the next "
414
  "time that the feed is loaded. You can choose how long this data should be "
415
  "cached for. If you set the time to 60 minutes then the plugin will clear the "
416
  "cached data after that length of time, and the next time the page is viewed "
417
+ "it will check for new data. <strong>Tip:</strong> If you're experiencing an issue with "
418
  "the plugin not updating automatically then try enabling the setting labeled "
419
+ "<strong>'Force cache to clear on interval'</strong> which is located on the "
420
  "'Customize' tab."
421
  msgstr ""
422
 
423
  #: inc/admin/main.php:884
424
  msgid ""
425
+ "<strong>2. In the background</strong><br>Selecting this option means that the plugin "
426
  "will check for new data in the background so that the feed is updated behind "
427
  "the scenes. You can select at what time and how often the plugin should "
428
+ "check for new data using the settings below. <strong>Please note</strong> that the "
429
  "plugin will initially check for data from Instagram when the page first "
430
  "loads, but then after that will check in the background on the schedule "
431
  "selected - unless the cache is cleared.</p>"
1222
 
1223
  #: inc/admin/main.php:1783
1224
  msgid ""
1225
+ "<strong>Visual Moderation Mode</strong><br />This adds a button to each feed that will "
1226
  "allow you to hide posts, block users, and create white lists from the front "
1227
  "end using a visual interface. Visit <a href='https://smashballoon.com/guide-"
1228
  "to-moderation-mode/?utm_source=plugin-free&utm_campaign=sbi' "
1824
  #: inc/admin/main.php:2392
1825
  msgid ""
1826
  "Watch a short video demonstrating how to set up, customize and use the "
1827
+ "plugin.<br /><strong>Please note</strong> that the video shows the set up and use of "
1828
+ "the <strong><a href='https://smashballoon.com/instagram-feed/?utm_source=plugin-"
1829
+ "free&utm_campaign=sbi' target='_blank'>Pro version</a></strong> of the plugin, "
1830
  "but the process is the same for this free version. The only difference is "
1831
  "some of the features available."
1832
  msgstr ""
1893
  #: inc/admin/main.php:2427
1894
  msgid ""
1895
  "Still need help? Submit a ticket and one of our support experts will get "
1896
+ "back to you as soon as possible.<br /><strong>Important:</strong> Please include your "
1897
+ "<strong>System Info</strong> below with all support requests."
1898
  msgstr ""
1899
 
1900
  #: inc/admin/main.php:2433