2016-08-23 1 views
1

В настоящее время я использую BP Avatar для создания профиля профиля пользователя на веб-сайте.Использование функции загрузки аватара и загрузки календаря на другой странице bp

Теперь я хочу использовать функцию загрузки и обрезки + предварительного просмотра BP Avatar для другой страницы, а также другую цель изображения с пользовательскими настройками.

Я попытался скопировать и отредактировать код на новой странице, но он не может работать даже в режиме предварительного просмотра.

Надеюсь, что кто-то может помочь.

Thankyou.

+0

У меня была такая же проблема, но я еще не нашел решение. Если я найду сообщение здесь! – gfirem

ответ

0

Вот код. Я обнаруживаю, что проблемы начинаются, когда bbp не обнаруживает пользователя, потому что в ядре bbp они получают идентификатор пользователя из URL-адреса, и в моем случае это не работает. Я подсчитываю необходимые фрагменты кода для выполнения. В моем случае я вставляю представление внутри конечной точки в мою учетную запись из woocommerce.

  1. переопределяет функцию, в которой скрипты получают данные.
  2. включают все необходимые сценарии.
  3. Вставить в мою функцию.

Я использую этот фильтр, чтобы bp_attachment_avatar_script_data

/** 
    * Override the avatar script data 
    * 
    * @param $script_data 
    * @param $object 
    * 
    * @return int 
    */ 
    public function noys_avatar_script_data($script_data, $object) { 
     $user_id = get_current_user_id(); 

     if (! empty($user_id)) { 
      // Should we load the the Webcam Avatar javascript file. 
      if (bp_avatar_use_webcam()) { 
       $script_data['extra_js'] = array_merge($script_data['extra_js'], array('bp-webcam')); 
      } 

      $script_data['bp_params'] = array(
       'object'  => 'user', 
       'item_id' => $user_id, 
       'has_avatar' => bp_get_user_has_avatar($user_id), 
       'nonces'  => array(
        'set' => wp_create_nonce('bp_avatar_cropstore'), 
        'remove' => wp_create_nonce('bp_delete_avatar_link'), 
       ), 
      ); 

      // Set feedback messages. 
      $script_data['feedback_messages'] = array(
       1 => __('There was a problem cropping your profile photo.', 'buddypress'), 
       2 => __('Your new profile photo was uploaded successfully.', 'buddypress'), 
       3 => __('There was a problem deleting your profile photo. Please try again.', 'buddypress'), 
       4 => __('Your profile photo was deleted successfully!', 'buddypress'), 
      ); 
     } 

     return $script_data; 
    } 

И это моя функция, чтобы включить содержимое в WooCommerce конечной точке.

/** 
* Endpoint HTML content. 
*/ 
public function profile_picture_endpoints_content1() { 
    $bd = buddypress(); 
    bp_core_register_common_scripts(); 
    wp_enqueue_style('thickbox'); 
    wp_enqueue_script('media-upload'); 

    bp_core_add_jquery_cropper(); 

    bp_attachments_enqueue_scripts('BP_Attachment_Avatar'); 
    bp_attachments_get_template_part('avatars/index'); 
} 

Это все, что мне нужно для решения этой недокументированной проблемы!

Смежные вопросы