Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- add_action( 'dokan_seller_meta_fields', 'dokan_load_store_seo_field_in_admin', 10 );
- add_action( 'dokan_process_seller_meta_fields', 'dokan_process_seller_seo_data', 10 );
- function dokan_load_store_seo_field_in_admin( $user ) {
- $seo = new Dokan_Pro_Store_Seo();
- $seller_profile = dokan_get_store_info( $user->ID );
- $seo_meta = isset( $seller_profile['store_seo'] ) ? $seller_profile['store_seo'] : array();
- $default_store_seo = array(
- 'dokan-seo-meta-title' => false,
- 'dokan-seo-meta-desc' => false,
- 'dokan-seo-meta-keywords' => false,
- 'dokan-seo-og-title' => false,
- 'dokan-seo-og-desc' => false,
- 'dokan-seo-og-image' => false,
- 'dokan-seo-twitter-title' => false,
- 'dokan-seo-twitter-desc' => false,
- 'dokan-seo-twitter-image' => false,
- );
- $seo_meta = wp_parse_args( $seo_meta, $default_store_seo );
- $og_image = $seo_meta['dokan-seo-og-image'] ? $seo_meta['dokan-seo-og-image'] : 0;
- $og_image_url = $og_image ? wp_get_attachment_thumb_url( $og_image ) : '';
- $twitter_image = $seo_meta['dokan-seo-twitter-image'] ? $seo_meta['dokan-seo-twitter-image'] : 0;
- $twitter_image_url = $twitter_image ? wp_get_attachment_thumb_url( $twitter_image ) : '';
- ?>
- <tr>
- <th><?php _e( 'Store SEO Options', 'dokan' ); ?></th>
- </tr>
- <tr>
- <th><?php _e( 'SEO Title', 'dokan' ); ?></th>
- <td>
- <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">
- </td>
- </tr>
- <tr>
- <th><?php _e( 'Meta Description', 'dokan' ); ?></th>
- <td>
- <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>
- </td>
- </tr>
- <tr>
- <th><?php _e( 'Meta Keywords', 'dokan' ); ?></th>
- <td>
- <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">
- </td>
- </tr>
- <tr>
- <th><?php _e( 'Facebook Title', 'dokan' ); ?></th>
- <td>
- <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">
- </td>
- </tr>
- <tr>
- <th><?php _e( 'Facebook Description', 'dokan' ); ?></th>
- <td>
- <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>
- </td>
- </tr>
- <tr>
- <th><?php _e( 'Facebook Image', 'dokan' ); ?></th>
- <td>
- <div class="dokan-w5 dokan-gravatar dokan-seo-image">
- <div class="dokan-left gravatar-wrap<?php echo $og_image ? '' : ' dokan-hide'; ?>">
- <input type="hidden" class="dokan-file-field" value="<?php echo $og_image; ?>" name="dokan_seo[dokan-seo-og-image]">
- <img class="dokan-gravatar-img" src="<?php echo esc_url( $og_image_url ); ?>">
- <a class="dokan-close dokan-remove-gravatar-image">×</a>
- </div>
- <div class="gravatar-button-area <?php echo $og_image ? ' dokan-hide' : ''; ?>">
- <a href="#" class="dokan-gravatar-drag button button-default"><i class="fa fa-cloud-upload"></i> <?php _e( 'Upload Photo', 'dokan' ); ?></a>
- </div>
- </div>
- </td>
- </tr>
- <tr>
- <th><?php _e( 'Twitter Title', 'dokan' ); ?></th>
- <td>
- <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">
- </td>
- </tr>
- <tr>
- <th><?php _e( 'Twitter Description', 'dokan' ); ?></th>
- <td>
- <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>
- </td>
- </tr>
- <tr>
- <th><?php _e( 'Twitter Image', 'dokan' ); ?></th>
- <td>
- <div class="dokan-w5 dokan-gravatar dokan-seo-image">
- <div class="dokan-left gravatar-wrap<?php echo $twitter_image ? '' : ' dokan-hide'; ?>">
- <input type="hidden" class="dokan-file-field" value="<?php echo $twitter_image; ?>" name="dokan_seo[dokan-seo-twitter-image]">
- <img class="dokan-gravatar-img" src="<?php echo esc_url( $twitter_image_url ); ?>">
- <a class="dokan-close dokan-remove-gravatar-image">×</a>
- </div>
- <div class="gravatar-button-area <?php echo $twitter_image ? ' dokan-hide' : ''; ?>">
- <a href="#" class="dokan-gravatar-drag button button-default"><i class="fa fa-cloud-upload"></i> <?php _e( 'Upload Photo', 'dokan' ); ?></a>
- </div>
- </div>
- </td>
- </tr>
- <style>
- .dokan-seo-image {
- position: relative;
- }
- .dokan-seo-image .dokan-remove-gravatar-image {
- position: absolute;
- width: 150px;
- height: 150px;
- background: #000;
- top: 0;
- left: 0;
- opacity: .7;
- font-size: 70px;
- text-align: center;
- color: #f00;
- padding-top: 18px;
- cursor: pointer;
- display: none;
- border-radius: 0%;
- box-sizing: border-box;
- }
- .dokan-seo-image .gravatar-wrap .dokan-gravatar-img {
- border-radius: 0%;
- height: 150px !important;
- width: 150px;
- }
- .dokan-seo-image:hover .dokan-remove-gravatar-image {
- display: block;
- }
- </style>
- <script>
- ;( function($) {
- var Dokan_Admin_Seo_Settings = {
- init: function() {
- $('a.dokan-gravatar-drag').on('click', this.simpleImageUpload);
- $('a.dokan-remove-gravatar-image').on('click', this.removeGravatar);
- },
- simpleImageUpload : function(e) {
- e.preventDefault();
- var file_frame,
- self = $(this);
- // If the media frame already exists, reopen it.
- if ( file_frame ) {
- file_frame.open();
- return;
- }
- // Create the media frame.
- file_frame = wp.media.frames.file_frame = wp.media({
- title: jQuery( this ).data( 'uploader_title' ),
- button: {
- text: jQuery( this ).data( 'uploader_button_text' )
- },
- multiple: false
- });
- // When an image is selected, run a callback.
- file_frame.on( 'select', function() {
- var attachment = file_frame.state().get('selection').first().toJSON();
- var wrap = self.closest('.dokan-gravatar');
- wrap.find('input.dokan-file-field').val(attachment.id);
- wrap.find('img.dokan-gravatar-img').attr('src', attachment.url);
- self.parent().siblings('.gravatar-wrap', wrap).removeClass('dokan-hide');
- self.parent('.gravatar-button-area').addClass('dokan-hide');
- });
- // Finally, open the modal
- file_frame.open();
- },
- removeGravatar: function(e) {
- e.preventDefault();
- var self = $(this);
- var wrap = self.closest('.gravatar-wrap');
- var instruction = wrap.siblings('.gravatar-button-area');
- wrap.find('input.dokan-file-field').val('0');
- wrap.addClass('dokan-hide');
- instruction.removeClass('dokan-hide');
- }
- };
- Dokan_Admin_Seo_Settings.init();
- })(jQuery);
- </script>
- <?php
- }
- function dokan_process_seller_seo_data( $user_id ){
- if ( !is_user_logged_in() ) {
- return;
- }
- if ( empty( $_POST['dokan_seo'] ) ) {
- return;
- }
- $default_store_seo = array(
- 'dokan-seo-meta-title' => false,
- 'dokan-seo-meta-desc' => false,
- 'dokan-seo-meta-keywords' => false,
- 'dokan-seo-og-title' => false,
- 'dokan-seo-og-desc' => false,
- 'dokan-seo-og-image' => false,
- 'dokan-seo-twitter-title' => false,
- 'dokan-seo-twitter-desc' => false,
- 'dokan-seo-twitter-image' => false,
- );
- $seller_profile = dokan_get_store_info( $user_id );
- $seller_profile['store_seo'] = wp_parse_args( (array)$_POST['dokan_seo'], $default_store_seo );
- update_user_meta( $user_id, 'dokan_profile_settings', $seller_profile );
- }
Add Comment
Please, Sign In to add comment