Guest User

Untitled

a guest
Jan 20th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.93 KB | None | 0 0
  1. <?php
  2.  
  3. add_action( 'dokan_seller_meta_fields', 'dokan_load_store_seo_field_in_admin', 10 );
  4. add_action( 'dokan_process_seller_meta_fields', 'dokan_process_seller_seo_data', 10 );
  5.  
  6. function dokan_load_store_seo_field_in_admin( $user ) {
  7. $seo = new Dokan_Pro_Store_Seo();
  8. $seller_profile = dokan_get_store_info( $user->ID );
  9. $seo_meta = isset( $seller_profile['store_seo'] ) ? $seller_profile['store_seo'] : array();
  10.  
  11. $default_store_seo = array(
  12. 'dokan-seo-meta-title' => false,
  13. 'dokan-seo-meta-desc' => false,
  14. 'dokan-seo-meta-keywords' => false,
  15. 'dokan-seo-og-title' => false,
  16. 'dokan-seo-og-desc' => false,
  17. 'dokan-seo-og-image' => false,
  18. 'dokan-seo-twitter-title' => false,
  19. 'dokan-seo-twitter-desc' => false,
  20. 'dokan-seo-twitter-image' => false,
  21. );
  22.  
  23. $seo_meta = wp_parse_args( $seo_meta, $default_store_seo );
  24.  
  25. $og_image = $seo_meta['dokan-seo-og-image'] ? $seo_meta['dokan-seo-og-image'] : 0;
  26. $og_image_url = $og_image ? wp_get_attachment_thumb_url( $og_image ) : '';
  27.  
  28. $twitter_image = $seo_meta['dokan-seo-twitter-image'] ? $seo_meta['dokan-seo-twitter-image'] : 0;
  29. $twitter_image_url = $twitter_image ? wp_get_attachment_thumb_url( $twitter_image ) : '';
  30.  
  31. ?>
  32. <tr>
  33. <th><?php _e( 'Store SEO Options', 'dokan' ); ?></th>
  34. </tr>
  35.  
  36. <tr>
  37. <th><?php _e( 'SEO Title', 'dokan' ); ?></th>
  38. <td>
  39. <input id="dokan-seo-meta-title" value="<?php echo $seo->print_saved_meta( $seo_meta['dokan-seo-meta-title'] ) ?>" name="dokan_seo[dokan-seo-meta-title]" placeholder=" " class="regular-text" type="text">
  40. </td>
  41. </tr>
  42.  
  43. <tr>
  44. <th><?php _e( 'Meta Description', 'dokan' ); ?></th>
  45. <td>
  46. <textarea class="regular-text" rows="3" id="dokan-seo-meta-desc" name="dokan_seo[dokan-seo-meta-desc]"><?php echo $seo->print_saved_meta( $seo_meta['dokan-seo-meta-desc'] ) ?></textarea>
  47. </td>
  48. </tr>
  49.  
  50. <tr>
  51. <th><?php _e( 'Meta Keywords', 'dokan' ); ?></th>
  52. <td>
  53. <input id="dokan-seo-meta-keywords" value="<?php echo $seo->print_saved_meta( $seo_meta['dokan-seo-meta-keywords'] ) ?>" name="dokan_seo[dokan-seo-meta-keywords]" placeholder=" " class="regular-text" type="text">
  54. </td>
  55. </tr>
  56.  
  57. <tr>
  58. <th><?php _e( 'Facebook Title', 'dokan' ); ?></th>
  59. <td>
  60. <input id="dokan-seo-og-title" value="<?php echo $seo->print_saved_meta( $seo_meta['dokan-seo-og-title'] ) ?>" name="dokan_seo[dokan-seo-og-title]" placeholder=" " class="regular-text" type="text">
  61. </td>
  62. </tr>
  63.  
  64. <tr>
  65. <th><?php _e( 'Facebook Description', 'dokan' ); ?></th>
  66. <td>
  67. <textarea class="regular-text" rows="3" id="dokan-seo-og-desc" name="dokan_seo[dokan-seo-og-desc]"><?php echo $seo->print_saved_meta( $seo_meta['dokan-seo-og-desc'] ) ?></textarea>
  68. </td>
  69. </tr>
  70.  
  71. <tr>
  72. <th><?php _e( 'Facebook Image', 'dokan' ); ?></th>
  73. <td>
  74. <div class="dokan-w5 dokan-gravatar dokan-seo-image">
  75. <div class="dokan-left gravatar-wrap<?php echo $og_image ? '' : ' dokan-hide'; ?>">
  76. <input type="hidden" class="dokan-file-field" value="<?php echo $og_image; ?>" name="dokan_seo[dokan-seo-og-image]">
  77. <img class="dokan-gravatar-img" src="<?php echo esc_url( $og_image_url ); ?>">
  78. <a class="dokan-close dokan-remove-gravatar-image">&times;</a>
  79. </div>
  80.  
  81. <div class="gravatar-button-area <?php echo $og_image ? ' dokan-hide' : ''; ?>">
  82. <a href="#" class="dokan-gravatar-drag button button-default"><i class="fa fa-cloud-upload"></i> <?php _e( 'Upload Photo', 'dokan' ); ?></a>
  83. </div>
  84. </div>
  85. </td>
  86. </tr>
  87.  
  88. <tr>
  89. <th><?php _e( 'Twitter Title', 'dokan' ); ?></th>
  90. <td>
  91. <input id="dokan-seo-twitter-title" value="<?php echo $seo->print_saved_meta( $seo_meta['dokan-seo-twitter-title'] ) ?>" name="dokan_seo[dokan-seo-twitter-title]" placeholder=" " class="regular-text" type="text">
  92. </td>
  93. </tr>
  94.  
  95. <tr>
  96. <th><?php _e( 'Twitter Description', 'dokan' ); ?></th>
  97. <td>
  98. <textarea class="regular-text" rows="3" id="dokan-seo-twitter-desc" name="dokan_seo[dokan-seo-twitter-desc]"><?php echo $seo->print_saved_meta( $seo_meta['dokan-seo-twitter-desc'] ) ?></textarea>
  99. </td>
  100. </tr>
  101.  
  102. <tr>
  103. <th><?php _e( 'Twitter Image', 'dokan' ); ?></th>
  104. <td>
  105. <div class="dokan-w5 dokan-gravatar dokan-seo-image">
  106. <div class="dokan-left gravatar-wrap<?php echo $twitter_image ? '' : ' dokan-hide'; ?>">
  107. <input type="hidden" class="dokan-file-field" value="<?php echo $twitter_image; ?>" name="dokan_seo[dokan-seo-twitter-image]">
  108. <img class="dokan-gravatar-img" src="<?php echo esc_url( $twitter_image_url ); ?>">
  109. <a class="dokan-close dokan-remove-gravatar-image">&times;</a>
  110. </div>
  111.  
  112. <div class="gravatar-button-area <?php echo $twitter_image ? ' dokan-hide' : ''; ?>">
  113. <a href="#" class="dokan-gravatar-drag button button-default"><i class="fa fa-cloud-upload"></i> <?php _e( 'Upload Photo', 'dokan' ); ?></a>
  114. </div>
  115. </div>
  116. </td>
  117. </tr>
  118.  
  119.  
  120. <style>
  121.  
  122. .dokan-seo-image {
  123. position: relative;
  124. }
  125. .dokan-seo-image .dokan-remove-gravatar-image {
  126. position: absolute;
  127. width: 150px;
  128. height: 150px;
  129. background: #000;
  130. top: 0;
  131. left: 0;
  132. opacity: .7;
  133. font-size: 70px;
  134. text-align: center;
  135. color: #f00;
  136. padding-top: 18px;
  137. cursor: pointer;
  138. display: none;
  139. border-radius: 0%;
  140. box-sizing: border-box;
  141. }
  142. .dokan-seo-image .gravatar-wrap .dokan-gravatar-img {
  143. border-radius: 0%;
  144. height: 150px !important;
  145. width: 150px;
  146. }
  147. .dokan-seo-image:hover .dokan-remove-gravatar-image {
  148. display: block;
  149. }
  150. </style>
  151.  
  152. <script>
  153. ;( function($) {
  154. var Dokan_Admin_Seo_Settings = {
  155. init: function() {
  156. $('a.dokan-gravatar-drag').on('click', this.simpleImageUpload);
  157. $('a.dokan-remove-gravatar-image').on('click', this.removeGravatar);
  158. },
  159.  
  160. simpleImageUpload : function(e) {
  161. e.preventDefault();
  162. var file_frame,
  163. self = $(this);
  164.  
  165. // If the media frame already exists, reopen it.
  166. if ( file_frame ) {
  167. file_frame.open();
  168. return;
  169. }
  170.  
  171. // Create the media frame.
  172. file_frame = wp.media.frames.file_frame = wp.media({
  173. title: jQuery( this ).data( 'uploader_title' ),
  174. button: {
  175. text: jQuery( this ).data( 'uploader_button_text' )
  176. },
  177. multiple: false
  178. });
  179.  
  180. // When an image is selected, run a callback.
  181. file_frame.on( 'select', function() {
  182. var attachment = file_frame.state().get('selection').first().toJSON();
  183.  
  184. var wrap = self.closest('.dokan-gravatar');
  185. wrap.find('input.dokan-file-field').val(attachment.id);
  186. wrap.find('img.dokan-gravatar-img').attr('src', attachment.url);
  187. self.parent().siblings('.gravatar-wrap', wrap).removeClass('dokan-hide');
  188. self.parent('.gravatar-button-area').addClass('dokan-hide');
  189.  
  190. });
  191.  
  192. // Finally, open the modal
  193. file_frame.open();
  194. },
  195.  
  196. removeGravatar: function(e) {
  197. e.preventDefault();
  198.  
  199. var self = $(this);
  200. var wrap = self.closest('.gravatar-wrap');
  201. var instruction = wrap.siblings('.gravatar-button-area');
  202.  
  203. wrap.find('input.dokan-file-field').val('0');
  204. wrap.addClass('dokan-hide');
  205. instruction.removeClass('dokan-hide');
  206. }
  207. };
  208.  
  209. Dokan_Admin_Seo_Settings.init();
  210.  
  211. })(jQuery);
  212. </script>
  213.  
  214. <?php
  215. }
  216.  
  217. function dokan_process_seller_seo_data( $user_id ){
  218. if ( !is_user_logged_in() ) {
  219. return;
  220. }
  221. if ( empty( $_POST['dokan_seo'] ) ) {
  222. return;
  223. }
  224.  
  225. $default_store_seo = array(
  226. 'dokan-seo-meta-title' => false,
  227. 'dokan-seo-meta-desc' => false,
  228. 'dokan-seo-meta-keywords' => false,
  229. 'dokan-seo-og-title' => false,
  230. 'dokan-seo-og-desc' => false,
  231. 'dokan-seo-og-image' => false,
  232. 'dokan-seo-twitter-title' => false,
  233. 'dokan-seo-twitter-desc' => false,
  234. 'dokan-seo-twitter-image' => false,
  235. );
  236.  
  237. $seller_profile = dokan_get_store_info( $user_id );
  238. $seller_profile['store_seo'] = wp_parse_args( (array)$_POST['dokan_seo'], $default_store_seo );
  239. update_user_meta( $user_id, 'dokan_profile_settings', $seller_profile );
  240. }
Add Comment
Please, Sign In to add comment