Поддержка Проблемы и решения Не работает загрузка аватара

  • Всем привет, не работает загрузка аватара в теме, в коде все складно, подскажите что не так:

                    <div class="rtcl-profile-picture-wrap form-group">
                        <?php if (!$pp_id): ?>
                            <div class="rtcl-gravatar-wrap">
                                <?php echo get_avatar($user->ID);
                                echo "<p>" . sprintf(
                                        __('<a href="%s">You can change your profile picture on Gravatar</a>.', 'classima'),
                                        __('https://en.gravatar.com/')
                                    ) . "</p>";
                                ?>
                            </div>
                        <?php endif; ?>
                        <div class="rtcl-media-upload-wrap">
                            <div class="rtcl-media-upload rtcl-media-upload-pp<?php echo($pp_id ? ' has-media' : ' no-media') ?>">
                                <div class="rtcl-media-action">
                                    <span class="rtcl-icon-plus add"><?php esc_html_e('Add Logo', 'classima'); ?></span>
                                    <span class="rtcl-icon-trash remove"><?php esc_html_e('Delete Logo', 'classima'); ?></span>
                                </div>
                                <div class="rtcl-media-item">
                                    <?php echo($pp_id ? wp_get_attachment_image($pp_id, [100, 100]) : '') ?>
                                </div>
                            </div>
                        </div>
                    </div>
Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Модератор Yuri

    (@yube)

    get_avatar($user->ID)
    $user откуда берется?
    $pp_id, кстати, тоже.

    $user откуда берется?
    $pp_id, кстати, тоже.

    Инициируются как:
    $user = wp_get_current_user();

            <?php
            $pp_id = get_user_meta($current_user->ID, '_rtcl_pp_id', true);
            echo($pp_id ? wp_get_attachment_image($pp_id, [100, 100]) : get_avatar($current_user->ID)); ?>

    Есть отдельная функция для загрузки изображения:

        public static function profile_picture_upload() {
            $msg = null;
            if (Functions::verify_nonce() && isset($_FILES['pp']) && $user_id = get_current_user_id()) {
                Filters::beforeUpload();
                $status = wp_handle_upload($_FILES['pp'], ['test_form' => false]);
                Filters::afterUpload();
                if ($status && !isset($status['error'])) {
                    // $filename should be the path to a file in the upload directory.
                    $filename = $status['file'];
                    // Check the type of tile. We'll use this as the 'post_mime_type'.
                    $fileType = wp_check_filetype(basename($filename), null);
    
                    // Get the path to the upload directory.
                    $wp_upload_dir = wp_upload_dir();
    
                    // Prepare an array of post data for the attachment.
                    $attachment = array(
                        'guid'           => $wp_upload_dir['url'] . '/' . basename($filename),
                        'post_mime_type' => $fileType['type'],
                        'post_title'     => preg_replace('/\.[^.]+$/', '', basename($filename)),
                        'post_content'   => '',
                        'post_status'    => 'inherit'
                    );
    
                    // Insert the attachment.
                    $attach_id = wp_insert_attachment($attachment, $filename);
                    if (!is_wp_error($attach_id)) {
                        if ($existing_pp = get_user_meta($user_id, '_rtcl_pp_id', true)) {
                            wp_delete_attachment($existing_pp);
                        }
                        update_user_meta($user_id, '_rtcl_pp_id', $attach_id);
                        wp_update_attachment_metadata($attach_id, wp_generate_attachment_metadata($attach_id, $filename));
                        $src = wp_get_attachment_image_src($attach_id);
                        $data = array(
                            'pp_id'   => $attach_id,
                            'src'     => $src[0],
                            'message' => esc_html__("Successfully updated.", "classified-listing")
                        );
                        do_action('rtcl_user_pp_updated', $data, $user_id, $attach_id, $_REQUEST);
                        wp_send_json_success($data);
                    }
                } else {
                    $msg = $status['error'];
                }
            } else {
                $msg = esc_html__("Authentication error!!", "classified-listing");
            }
            wp_send_json_error($msg);
    
        }

    Можно вообще использовать плагин Avatar Manager
    Тогда будет вопрос как вывести панельку загрузки на страницу темы.
    А стоковое из темы не использовать.

    А стоковое из темы не использовать.

    а если вопрос задать первоисточнику — автору темы?
    Смысла ставить плагин если в теме функционал есть. А чинить функционал — забота автора

    а если вопрос задать первоисточнику — автору темы?
    Смысла ставить плагин если в теме функционал есть. А чинить функционал — забота автора

    автор из европы, не отвечает
    какие есть решения? как насчет плагина? есть такой плагин https://wordpress.org/plugins/basic-user-avatars/#screenshots
    но зараза шорткод не работает

    Давно в европу с голубями писем не отправляли.
    Хотя автор может быть спит? Выходной? Отпуск? Подождите — хорошие авторы спустя неделю отвечают

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Не работает загрузка аватара» закрыта для новых ответов.