https://imgur.com/zPrvIyA
안녕하세요
WPML로 다국어 페이지를 만들고 있습니다.
여러게를 질문 해야 할 것 같습니다.
1>링크한 이미지처럼 필드를 추가해서 만든 회원가입 페이지의 경우 다국어 번역이 되지 않고 있습니다.
2>function에 추가한 필터들의 번역은 어떻게 해야 하나요 ? 코드는 아래와 같습니다.
/*회원가입 리다이렉트*/
add_action('wpmem_register_redirect', 'my_register_redirect', 5);
function my_register_redirect(){
wp_redirect('/join_celebration/');
exit;
}
/*비밀번호찾기 리다이렉트*/
add_filter('cosmosfarm_members_forgot_password_link', 'my_cosmosfarm_members_forgot_password_link', 10, 1);
function my_cosmosfarm_members_forgot_password_link($link){
$link = '/search_password/';
return $link;
}
/*아이디 찾기 리다이렉트*/
add_filter('cosmosfarm_members_forgot_Username_link', 'my_cosmosfarm_members_forgot_Username_link', 10, 1);
function my_cosmosfarm_members_forgot_Username_link($link){
$link = '/search_id/';
return $link;
}
/*로그인 실패 리다이렉트*/
add_filter('wpmem_login_failed', 'my_wp_login_failed', 10, 1);
function my_wp_login_failed($str){
echo "<script>alert(\"가입정보가 없습니다. \"); history.go(-1)</script>";
exit;
}
/*회원가입 버튼명 변경*/
add_filter( 'wpmem_register_form_args', function( $args ) {
$args['submit_register'] = '정보입력 확인';
return $args;
});
/*wp-label 순서*/
add_filter('wpmem_register_form_rows', 'my_register_form_rows_filter', 10, 2);
function my_register_form_rows_filter($rows, $toggle){
// sms 필드
$rows['policy_sms'] = array (
'order' => 1,
'type' => 'checkbox',
'value' => '',
'row_before' => '<div class="f_box padding_none">',
'label' => '<label for="policy_sms" class="ch_inline">',
'field_before' => '',
'field' => '<input name="policy_sms" type="checkbox" id="policy_sms" class="textbox" />',
'field_after' => '<span>SMS 수신</span></label>',
);
// 이메일 필드
$rows['policy_mail'] = array (
'order' => 1,
'type' => 'checkbox',
'value' => '',
'label' => '<label for="policy_mail" class="ch_inline">',
'field_before' => '',
'field' => '<input name="policy_mail" type="checkbox" id="policy_mail" class="textbox" />',
'field_after' => '<span>이메일 수신</span></label>',
'row_after' => '</div>',
);
return $rows;
}
/*수신동의 라벨*/
add_filter('wpmem_register_form_rows', 'my_field_separator', 10, 2);
function my_field_separator($rows, $tag){
//수신동의 안내문 추가
$new_row['div_checkbox_heading'] = array(
'order' => '',
'meta' => '',
'type' => '',
'value' => '',
'row_before' => '',
'label' => '',
'field_before' => '',
'field' => '<p class="ch_text">동의하지 않으셔도 회원가입이 가능하나, 캠페인 결과 및 신규 소식 안내는 받으실 수 없습니다.</p>',
'field_after' => '',
'row_after' => ''
);
// 개인정보정책 전체 보기 추가
$new_row['div_policy_all'] = array(
'order' => '',
'meta' => '',
'type' => '',
'value' => '',
'row_before' => '<div class="policy_all">',
'label' => '',
'field_before' => '',
'field' => '<h5><span>개인정보 수집 및 동의 </span><a href="/?page_id=86" target="blank"><span>전문보기</span></a></h5>',
'field_after' => '',
'row_after' => '</div><p class="policy_info">이용약관 및 개인정보 수집 및 이용에 대한<br> 내용을 확인하고 동의합니다.</p>'
);
$rows = wpmem_array_insert($rows, $new_row, 'last_name');
return $rows;
}
/*툴바 안보이게*/
if ( ! current_user_can( 'administrator' ) ) {
add_filter( 'show_admin_bar', '__return_false' );
}
/*회원탈퇴*/
add_shortcode('my_cosmosfarm_members_delete_account_link', 'my_cosmosfarm_members_delete_account_link');
function my_cosmosfarm_members_delete_account_link($atts=array()){
$delete_account_url = wp_nonce_url(add_query_arg(array('action'=>'cosmosfarm_members_delete_account'), $_SERVER['REQUEST_URI']), 'cosmosfarm_members_delete_account', 'cosmosfarm_members_delete_account_nonce');
return sprintf('<a href="%s" onclick="return confirm(\'정말 탈퇴 하시겠습니까?\')">계정 탈퇴 신청</a>', $delete_account_url);
}
필드를 필터로 편집했다면
해당 필터에서 $_GET 변수 또는 ICL_LANGUAGE_CODE 상수를 활용하여
현재 언어를 구분해서 적용해주셔야 할 듯합니다.
다국어 페이지의 주소가 페이지주소?lang=en 이런 식으로 저장되어 있다면
아래 관련 링크를 참고해서 필터 쪽 코드를 수정해보시겠어요?
https://www.cosmosfarm.com/threads/document/16063
$_GET 변수로 해결되지 않으신다면 ICL_LANGUAGE_CODE 상수 사용도 고려해보세요.
고맙습니다.
WPML로 적용을 다 했는데
회원 가입 페이지만 적용이 안되네요 .
WPML 문자열로 뽑아서도 번역해봤는데 적용이 되지 않아서
다시 질문드립니다.
wp-members에 추가로 필드만들어서 회원 가입한 경우에는 어떻게 해야 하나요?
이미지 첨부 드립니다.
https://imgur.com/aAgxRHh -> wp-members
https://imgur.com/hbOn8Li -> WPML 문자열 변환
안녕하세요~^^
WPML 플러그인을 사용 중이신지요?
다국어일 때 페이지 주소에 따라 $_GET 변수로 필터 쪽 코드를 수정하거나
WPML 플러그인에서 지원하는 ICL_LANGUAGE_CODE 상수에 따라
필터에 적용되는 코드를 다르게 하실 수 있습니다.
아래 링크도 참고해보시겠어요?
https://wpml.org/documentation/support/wpml-coding-api/
고맙습니다.