Я надеюсь, что кто-нибудь на этом форуме поможет мне с пользовательской страницей загрузки аватара, которую я пытаюсь создать для Buddypress. Заранее извиняюсь за длинное письмо, но я хочу быть максимально ясным, чтобы, надеюсь, получить четкий и конкретный ответ :)
Страница является частью трехэтапного процесса «начало работы», который пользователь выполняет после регистрации на веб-сайте (1. заполнение полей профиля 2. загрузка аватара 3. приглашение друзей).
Я не эксперт в коде, но я отсортировал шаги 1 и 3, скопировав и отредактировав код из файлов profile/edit.php и пригласить кого-либо/по электронной почте/по электронной почте.php соответственно, а затем выполнив перенаправление при отправке на следующий шаг.
Чтобы выполнить шаг 1, мне также пришлось отредактировать файл bp-xprofile-template.php, включив в него if is_page... else..., чтобы страница использовала loggedin_user, а не display_user.
На шаге 2 у меня страница отображается правильно, но после того, как я выбираю изображение для аватара и нажимаю «Загрузить», страница обновляется и не переходит к кадрированию, что было бы, если бы вы загружали аватар на изменение аватара. страницу в профиле.
Если я изменю действие формы, чтобы перенаправить на страницу смены аватара в профиле пользователя, вошедшего в систему (по умолчанию нет действия), то появится обрезка, но я не хочу, чтобы пользователь покидал «шаги».
Думал, может нужно что-то изменить в наборе функций avatar_admin в bp-core-template.php, чтобы он работал на других страницах, но это не выходит за рамки моих возможностей. Я действительно надеюсь, что кто-то может помочь с этим, потому что это последнее препятствие для завершения этого процесса.
Ниже приведен код для change-avatar.php, и это то, что я скопировал и пытаюсь заставить работать на пользовательской странице. Моя страница перестает работать должным образом на "if ('crop-image' == bp_get_avatar_admin_step()". Заранее спасибо.
<h4><?php _e( 'Change Avatar', 'buddypress' ) ?></h4>
<?php do_action( 'bp_before_profile_avatar_upload_content' ) ?>
<?php if ( !(int)bp_get_option( 'bp-disable-avatar-uploads' ) ) : ?>
<p><?php _e( 'Your avatar will be used on your profile and throughout the site. If there is a <a href="http://gravatar.com">Gravatar</a> associated with your account email we will use that, or you can upload an image from your computer.', 'buddypress') ?></p>
<form action="" method="post" id="avatar-upload-form" class="standard-form" enctype="multipart/form-data">
<?php if ( 'upload-image' == bp_get_avatar_admin_step() ) : ?>
<?php wp_nonce_field( 'bp_avatar_upload' ) ?>
<p><?php _e( 'Click below to select a JPG, GIF or PNG format photo from your computer and then click \'Upload Image\' to proceed.', 'buddypress' ) ?></p>
<p id="avatar-upload">
<input type="file" name="file" id="file" />
<input type="submit" name="upload" id="upload" value="<?php _e( 'Upload Image', 'buddypress' ) ?>" />
<input type="hidden" name="action" id="action" value="bp_avatar_upload" />
</p>
<?php if ( bp_get_user_has_avatar() ) : ?>
<p><?php _e( "If you'd like to delete your current avatar but not upload a new one, please use the delete avatar button.", 'buddypress' ) ?></p>
<p><a class="button edit" href="<?php bp_avatar_delete_link() ?>" title="<?php _e( 'Delete Avatar', 'buddypress' ) ?>"><?php _e( 'Delete My Avatar', 'buddypress' ) ?></a></p>
<?php endif; ?>
<?php endif; ?>
<?php if ( 'crop-image' == bp_get_avatar_admin_step() ) : ?>
<h5><?php _e( 'Crop Your New Avatar', 'buddypress' ) ?></h5>
<img src="<?php bp_avatar_to_crop() ?>" id="avatar-to-crop" class="avatar" alt="<?php _e( 'Avatar to crop', 'buddypress' ) ?>" />
<div id="avatar-crop-pane">
<img src="<?php bp_avatar_to_crop() ?>" id="avatar-crop-preview" class="avatar" alt="<?php _e( 'Avatar preview', 'buddypress' ) ?>" />
</div>
<input type="submit" name="avatar-crop-submit" id="avatar-crop-submit" value="<?php _e( 'Crop Image', 'buddypress' ) ?>" />
<input type="hidden" name="image_src" id="image_src" value="<?php bp_avatar_to_crop_src() ?>" />
<input type="hidden" id="x" name="x" />
<input type="hidden" id="y" name="y" />
<input type="hidden" id="w" name="w" />
<input type="hidden" id="h" name="h" />
<?php wp_nonce_field( 'bp_avatar_cropstore' ) ?>
<?php endif; ?>
</form>
<?php else : ?>
<p><?php _e( 'Your avatar will be used on your profile and throughout the site. To change your avatar, please create an account with <a href="http://gravatar.com">Gravatar</a> using the same email address as you used to register with this site.', 'buddypress' ) ?></p>
<?php endif; ?>
<?php do_action( 'bp_after_profile_avatar_upload_content' ) ?>