Nav apraksta

providers.php 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. <?php
  2. wp_enqueue_script('jquery-ui-sortable');
  3. ?>
  4. <div class="nsl-dashboard-providers-container">
  5. <?php
  6. if (NextendSocialLogin::hasConfigurationWithNoEnabledProviders()) {
  7. echo '<br><div class="notice notice-info">
  8. <p>' . sprintf(__('%1$s detected that you have providers configured but none of them are enabled. To display any social buttons, please make sure you have at least one provider enabled!', 'nextend-facebook-connect'), '<b>Nextend Social Login</b>') . '</p>
  9. </div>';
  10. }
  11. ?>
  12. <div class="nsl-dashboard-providers">
  13. <?php
  14. if (count(NextendSocialLogin::$enabledProviders) > 0) {
  15. include_once(dirname(__FILE__) . '/review.php');
  16. }
  17. ?>
  18. <?php foreach (NextendSocialLogin::$providers AS $provider): ?>
  19. <?php
  20. $state = $provider->getState();
  21. $providerAdmin = $provider->getAdmin();
  22. ?>
  23. <div class="nsl-dashboard-provider" data-provider="<?php echo $provider->getId(); ?>"
  24. data-state="<?php echo $state; ?>">
  25. <div class="nsl-dashboard-provider-top" style="background-color: <?php echo $provider->getColor(); ?>;">
  26. <img src="<?php echo $provider->getIcon(); ?>" height="60"
  27. alt="<?php echo esc_attr($provider->getLabel()); ?>"/>
  28. <h2><?php echo $provider->getLabel(); ?></h2>
  29. </div>
  30. <div class="nsl-dashboard-provider-bottom">
  31. <div class="nsl-dashboard-provider-bottom-state">
  32. <?php
  33. switch ($state) {
  34. case 'pro-only':
  35. _e('Not Available', 'nextend-facebook-connect');
  36. break;
  37. case 'not-configured':
  38. _e('Not Configured', 'nextend-facebook-connect');
  39. break;
  40. case 'not-tested':
  41. _e('Not Verified', 'nextend-facebook-connect');
  42. break;
  43. case 'disabled':
  44. _e('Disabled', 'nextend-facebook-connect');
  45. break;
  46. case 'enabled':
  47. _e('Enabled', 'nextend-facebook-connect');
  48. break;
  49. }
  50. ?>
  51. </div>
  52. <?php
  53. switch ($state) {
  54. case 'pro-only':
  55. ?>
  56. <a href="<?php echo NextendSocialLoginAdmin::trackUrl('https://nextendweb.com/social-login/', 'buy-pro-addon-button-' . $provider->getId()); ?>"
  57. class="button button-secondary" target="_blank">
  58. <?php _e('Upgrade Now', 'nextend-facebook-connect'); ?>
  59. </a>
  60. <?php
  61. break;
  62. case 'not-configured':
  63. ?>
  64. <a href="<?php echo $providerAdmin->getUrl(); ?>" class="button button-secondary">
  65. <?php _e('Getting Started', 'nextend-facebook-connect'); ?>
  66. </a>
  67. <?php
  68. break;
  69. case 'not-tested':
  70. ?>
  71. <a href="<?php echo $providerAdmin->getUrl('settings'); ?>"
  72. class="button button-secondary">
  73. <?php _e('Verify Settings', 'nextend-facebook-connect'); ?>
  74. </a>
  75. <?php
  76. break;
  77. case 'disabled':
  78. ?>
  79. <a href="<?php echo wp_nonce_url(add_query_arg('provider', $provider->getId(), NextendSocialLoginAdmin::getAdminUrl('enable')), 'nextend-social-login_enable_' . $provider->getId()); ?>"
  80. class="button button-primary">
  81. <?php _e('Enable', 'nextend-facebook-connect'); ?>
  82. </a>
  83. <a href="<?php echo $providerAdmin->getUrl('settings'); ?>"
  84. class="button button-secondary">
  85. <?php _e('Settings', 'nextend-facebook-connect'); ?>
  86. </a>
  87. <?php
  88. break;
  89. case 'enabled':
  90. ?>
  91. <a href="<?php echo wp_nonce_url(add_query_arg('provider', $provider->getId(), NextendSocialLoginAdmin::getAdminUrl('disable')), 'nextend-social-login_disable_' . $provider->getId()); ?>"
  92. class="button button-secondary">
  93. <?php _e('Disable', 'nextend-facebook-connect'); ?>
  94. </a>
  95. <a href="<?php echo $providerAdmin->getUrl('settings'); ?>"
  96. class="button button-secondary">
  97. <?php _e('Settings', 'nextend-facebook-connect'); ?>
  98. </a>
  99. <?php
  100. break;
  101. }
  102. ?>
  103. </div>
  104. <div class="nsl-dashboard-provider-sortable-handle"></div>
  105. </div>
  106. <?php endforeach; ?>
  107. <?php
  108. $user_info = wp_get_current_user();
  109. $already_subscribed = get_user_meta($user_info->ID, 'nsl_newsletter_subscription', true);
  110. if (!$already_subscribed):
  111. ?>
  112. <div class="nsl-dashboard-newsletter" style="background-color: #fff; border: 2px solid #0073aa">
  113. <div class="nsl-dashboard-newsletter-content">
  114. <h2><?php _e('Stay Updated', 'nextend-facebook-connect'); ?></h2>
  115. <p><?php _e('Receive info on the latest plugin updates and social provider related changes.', 'nextend-facebook-connect'); ?></p>
  116. <input type="text" name="newsletter_subscription" id="newsletter_subscription" placeholder="<?php _e('Enter your email address', 'nextend-facebook-connect'); ?>"
  117. value="<?php if (!empty($user_info->user_email)) : echo $user_info->user_email; endif; ?>" size="25">
  118. <a onclick="nslNewsletter()" class="button button-primary">
  119. <?php _e('Subscribe', 'nextend-facebook-connect'); ?>
  120. </a>
  121. </div>
  122. </div>
  123. <?php endif; ?>
  124. </div>
  125. <div class="nsl-clear"></div>
  126. </div>
  127. <script>
  128. (function ($) {
  129. $(document).ready(function () {
  130. var _ajax_nonce = '<?php echo wp_create_nonce("nextend-social-login"); ?>',
  131. savingMessage = <?php echo wp_json_encode(__('Saving...', 'nextend-facebook-connect')); ?>,
  132. errorMessage = <?php echo wp_json_encode(__('Saving failed', 'nextend-facebook-connect')); ?>,
  133. successMessage = <?php echo wp_json_encode(__('Order Saved', 'nextend-facebook-connect')); ?>;
  134. $('.nsl-dashboard-providers').sortable({
  135. handle: '.nsl-dashboard-provider-sortable-handle',
  136. items: ' > .nsl-dashboard-provider',
  137. tolerance: 'pointer',
  138. stop: function (event, ui) {
  139. var $providers = $('.nsl-dashboard-providers > .nsl-dashboard-provider'),
  140. providerList = [];
  141. for (var i = 0; i < $providers.length; i++) {
  142. providerList.push($providers.eq(i).data('provider'));
  143. }
  144. ui.item.find('.nsl-provider-notice').remove();
  145. var $notice = $('<div class="nsl-provider-notice">' + savingMessage + '</div>')
  146. .appendTo(ui.item);
  147. $.ajax({
  148. type: 'post',
  149. dataType: 'json',
  150. url: ajaxurl,
  151. data: {
  152. '_ajax_nonce': _ajax_nonce,
  153. 'action': 'nextend-social-login',
  154. 'view': 'orderProviders',
  155. 'ordering': providerList
  156. },
  157. success: function () {
  158. $notice.html(successMessage);
  159. setTimeout(function () {
  160. $notice.fadeOut(300, function () {
  161. $notice.remove();
  162. });
  163. }, 2000);
  164. },
  165. error: function () {
  166. $notice.html(errorMessage);
  167. setTimeout(function () {
  168. $notice.fadeOut(300, function () {
  169. $notice.remove();
  170. });
  171. }, 3000);
  172. }
  173. });
  174. }
  175. });
  176. <?php if (!$already_subscribed): ?>
  177. window.nslNewsletter = function () {
  178. $.ajax({
  179. type: 'post',
  180. dataType: 'json',
  181. url: 'https://api.nextendweb.com/v2/nextend-api/v2/product/nsl/subscribe',
  182. data: {
  183. 'email': $('#newsletter_subscription').val()
  184. },
  185. success: function () {
  186. $.ajax({
  187. type: 'post',
  188. dataType: 'json',
  189. url: ajaxurl,
  190. data: {
  191. '_ajax_nonce': _ajax_nonce,
  192. 'action': 'nextend-social-login',
  193. 'view': 'newsletterSubscribe'
  194. },
  195. success: function () {
  196. $('.nsl-dashboard-newsletter-content').html("<h2><?php _e('Successfully subscribed!', 'nextend-facebook-connect'); ?></h2><p><?php _e('We\'ll be bringing you all the latest news and updates about Social Login - right to your inbox.', 'nextend-facebook-connect'); ?></p>");
  197. }
  198. });
  199. },
  200. error: function (error) {
  201. //NOTICE FOR ERROR:
  202. if ($('.nsl-newsletter-notice>.error').length === 0) {
  203. $('.nsl-dashboard-providers-container').prepend('<div class="nsl-newsletter-notice"><div class="error"><p><?php _e('The entered email address is invalid!', 'nextend-facebook-connect'); ?><p></div></div>');
  204. }
  205. }
  206. });
  207. };
  208. <?php endif; ?>
  209. });
  210. })(jQuery);
  211. </script>