회원 아바타 변경 cosmosfarm_members_avatar_form_submit 함수 사용관련

안녕하세요?^^ 코스모스팜 회원관리 플러그인을 사용중입니다.

우커머스와 연동하여, 아래 명령문을 개인정보 페이지 상단에 추가했습니다.

<?php 
echo '<div class="avatar-img"><label for="cosmosfarm_members_avatar_file" title="'.__('Change Avatar', 'cosmosfarm-members').'">'.get_avatar(get_current_user_id(), '150').'<p class="change-avatar-message">'.__('Change Avatar', 'cosmosfarm-members').'</p><input type="file" name="cosmosfarm_members_avatar_file" id="cosmosfarm_members_avatar_file" multiple="false" accept="image/*" onchange="cosmosfarm_members_avatar_form_submit(this)"></label></div>';

첨부 이미지처럼 프로필은 잘 출력되는데, 아바타변경으로 이미지를 삽입해도 변경이 되질 않습니다.

https://imgur.com/a/ban2d7y

cosmosfarm_members_avatar_form_submit(this) 라는 함수를 작동시켜야 하는것 같은데..

구현방법을 잘 모르겠어서, 도움을 구하고자 글을 남기게 되었습니다.

혹시 해당페이지에서 동작하는 자바스크립트를 추가해야 된다면, 해당 코드를 여쭤봐도 괜찮을까요?

올 겨울 건강조심하시고 오늘 하루도 행복한하루 보내세요 ^^

감사합니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    저희도 다른 위치에 적용해본 적이 없기 때문에 확실치는 않습니다.

    아래 PHP 코드로 실행되게 해주셔야 할 것 같습니다.

    wp_nonce_field('cosmosfarm_members_avatar', 'cosmosfarm_members_avatar_nonce');

    또한 자바스크립트 cosmosfarm_members_avatar_form_submit 함수는 반드시 필요한 것은 아니고 form이 실행되게만 해주시면 될 것도 같습니다.

    그러나 반드시 테스트해가면서 코드를 고쳐가야 할 것 같습니다.

    고맙습니다.

  • 안녕하세요~^^ 빠른 답변 감사합니다.

    앞 뒤로 form 을 빼먹어서 그런것 같군요..

    집에 들어가면 수정해보겠습니다!

    감사합니다.

  • 안녕하세요~^^

    아래 코드를 functions.php 에 추가해서 해결했습니다.

    <? php
    
    function storefront_myaccount_customer_avatar() {
         $current_user = wp_get_current_user();
         
         if(isset($_POST['cosmosfarm_members_avatar_nonce']) && wp_verify_nonce($_POST['cosmosfarm_members_avatar_nonce'], 'cosmosfarm_members_avatar')){
    
             $file_handler = get_cosmosfarm_members_file_handler();
             $upload_file = $file_handler->upload_avatar('cosmosfarm_members_avatar_file');
    
             if($upload_file){
                 $cosmosfarm_members_avatar = get_user_meta($current_user->ID, 'cosmosfarm_members_avatar', true);
    
                 if($cosmosfarm_members_avatar){
                     $upload_dir = wp_upload_dir();
                     @unlink("{$upload_dir['basedir']}{$cosmosfarm_members_avatar}");
                 }
    
                 update_user_meta($current_user->ID, 'cosmosfarm_members_avatar', $upload_file['url']);
             }
         }
         
        echo '<div class="cosmosfarm-members-form">';
        echo '<div class="profile-header"><form id="cosmosfarm_members_avatar_form" method="post" enctype="multipart/form-data">';
        echo wp_nonce_field('cosmosfarm_members_avatar', 'cosmosfarm_members_avatar_nonce');
        echo '';
    	echo '<div class="avatar-img"><label for="cosmosfarm_members_avatar_file" title="' . __('Change Avatar', 'cosmosfarm-members') . '">' .get_avatar(get_current_user_id(), '150'). '<p class="change-avatar-message">' . __('Change Avatar', 'cosmosfarm-members') . '</p><input type="file" name="cosmosfarm_members_avatar_file" id="cosmosfarm_members_avatar_file" multiple="false" accept="image/*" onchange="cosmosfarm_members_avatar_form_submit(this)"></label></div>';
    	echo '</form></div>';
        echo '</div>';
     }
    
     add_action( 'woocommerce_account_content', 'storefront_myaccount_customer_avatar', 5 );

     

     

     

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기