링크를 타고 들어올 경우 특정 값을 저장한 뒤 필드에 자동 작성되는 방법을 알고 싶습니다.

저희가 회원가입을 위해 추천인 코드를 사용하고 있는데,

추천인 링크를 타고 들어오면, 회원가입 폼 해당필드에 자동으로 작성되고,

잠겨지는 방법을 어떻게 해야하는지요

또한

전에 회원정보 수정중에 수정하면 안되는 부분을

functions.php 파일에 선언하라고

하였는데,


function my_register_form_rows($row, $toggle){
    if($toggle == 'edit'){
        $row['mshop_recommender']['field_before'] = '<div class="mshop_recommender_readonly">';
        $row['mshop_recommender']['field_after'] = '</div>';
    }
    return $row;
}

이렇게 선언을 했는데도 계속 적으로 홈페이지가 오류가 나서 전에 작업했던 부분으로 되돌려 집니다.

이부분도 한번 확인 부탁드립니다

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 저희는 어떤 필드가 TP 코디 필드인지 알 수 없습니다.

    mshop_recommender 필드라고 코드를 올려주셔서 조언을 드린 것입니다.

     

    그리고 500 에러가 난 건 다른 이유라고 생각됩니다.

    코드를 추가하거나 변경할 땐 반드시 디버그 모드를 활성화해서 에러 내용을 확인해보시길 바랍니다.

    에러 내용을 모르면 저희도 조언을 드리기가 매우 어렵습니다.

     

    아래 코드를 추가해보시겠어요?

    (동일한 함수가 있다면 에러가 발생하기 때문에 함수 이름을 바꿔봤습니다.)

    add_filter('wpmem_register_form_rows', 'my_register_form_rows_recommender', 10, 2);
    function my_register_form_rows_recommender($row, $toggle){
        $row['mshop_recommender']['field'] = '<div class="mshop_recommender_readonly">';
        return $row;
    }

    그런데 mshop_recommender 필드가 맞아도 위 코드를 넣으면 필드가 안 나올 겁니다.

    실제 $row['mshop_recommender']['field'] 값을 출력해서 원래의 태그를 수정해서 다시 대입해주셔야 합니다.

     

    parint_r() 함수를 사용해서 값을 출력할 수 있습니다.

    print_r($row['mshop_recommender']['field']);

     

    플러그인 제작자에게 문의 해보시는것도 좋을 듯합니다.

    WP-Members 플러그인과 연동을 요청해보세요~

    고맙습니다.

  • add_filter('wpmem_register_form_rows', 'my_register_form_rows', 10, 2);
    function my_register_form_rows($row, $toggle){
        if($toggle == 'edit'){
            $row['mshop_recommender']['field_before'] = '<div class="mshop_recommender_readonly">';
            $row['mshop_recommender']['field_after'] = '</div>';
        }
        return $row;
    }
    
    

    이부분을 

    add_filter('wpmem_register_form_rows', 'my_register_form_rows', 10, 2);
    function my_register_form_rows($row, $toggle){
        if($toggle == 'edit'){
            $row['mshop_recommender']['field'] = '<div class="mshop_recommender_readonly">';
        }
        return $row;
    }

    이렇게 변경 하라는 건가요 ??

    변경을 해도 해당 위에 코드는 무조건 http error 500이 납니다.

    명령 자체가 문제가 있는거 같습니다

  • 무슨 말인지 모르겠습니다 ㅠㅠ

  • $row['mshop_recommender']['field_before']
    $row['mshop_recommender']['field_after'] 이쪽 태그 말고,

    $rows['mshop_recommender']['field'] 쪽의 태그를 확인 후 수정해주셔야 할 듯합니다.

  • 네 추천인 링크 받아오는 부분은 참고 하겠습니다.

    다만 저희 회원정보 수정부분 readonly로 바꾸고 싶은데

    자꾸 바꾸면 펑션 오류가 나며, 그전 작업한 상태로 돌아갑니다

    전에 알려주신대로

     

    add_filter('wpmem_register_form_rows', 'my_register_form_rows', 10, 2);
    function my_register_form_rows($row, $toggle){
        if($toggle == 'edit'){
            $row['mshop_recommender']['field_before'] = '<div class="mshop_recommender_readonly">';
            $row['mshop_recommender']['field_after'] = '</div>';
        }
        return $row;
    }

    이걸 추가로 삽입했을 경우 홈페이지에 오류가 발생합니다.

     

    회원정보수정에서 저걸 readonly로 바꾸고 싶습니다 ㅠㅠ

  • 안녕하세요~^^

    링크에서 추천인은 받아 오시는지요?

    아래의 코드를 활용해보시겠어요?

    add_filter('wpmem_register_form_rows', 'add_all_checkbox_checked_script', 10, 2);
    function add_all_checkbox_checked_script($rows, $toggle){
    	$rows['메타키']['field'] = '<input name="메타키" type="text" id="메타키" value="추천인" class="textbox" readonly="readonly">';
        return $rows;
    }

    위 코드에서 메타키 부분을 실제 사용 중인 필드의 Meta Key 값으로 변경해보세요.

    추천인 부분도 링크에서 받아온 값으로 넣어주시면 됩니다.

    PHP에서 링크의 값은 $_GET을 이용하여 가져올 수 있습니다.

    아래의 링크를 참고해보시겠어요?

    http://php.net/manual/kr/language.variables.external.php

    고맙습니다.

  • add_filter('wpmem_register_form_rows', 'add_all_checkbox_checked_script', 10, 2);
    function add_all_checkbox_checked_script($rows, $toggle){ 
        ?>
            <script>
            jQuery(document).ready(function(){
                jQuery('input[name=all_checkbox_checked]').change(function(){
                    var form = jQuery(this).closest('form');
                    
                    if(jQuery(this).prop('checked')){
                        jQuery('input[type=checkbox]').prop('checked', true);
                    }
                    else{
                        jQuery('input[type=checkbox]').prop('checked', false);
                    }
                });
            });
        </script>
        <?php
        return $rows;
    }
     

    현재 선언되어있는 저희 작업 입니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요