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

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

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

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

또한

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

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;
}

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

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

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 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;
    }
     

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

  • 안녕하세요~^^

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

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

    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

    고맙습니다.

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

    다만 저희 회원정보 수정부분 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로 바꾸고 싶습니다 ㅠㅠ

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

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

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

  • 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이 납니다.

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

  • 저희는 어떤 필드가 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 플러그인과 연동을 요청해보세요~

    고맙습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기