1. 정확한 제품 또는 플러그인 이름
wp-members
2. 상세 내용
현재 사이트에 단체에 가입된 학생들만 가입할 수 있도록 설정을 할려고 합니다.
그러나 플러그인끼리 호환이 안되서 회원관리 플러그인 안에 승인된 도메인만 가입이 가능하도록 하려고 합니다만, php를 다뤄본 적이 없어서 막막한 상태입니다.
혹시 알려주시면 감사하겠습니다.
3. 확인 가능한 상세 페이지 주소
https://ksjp1982.com
4. 수정한 코드 내역 (있다면)
wp-members code
<?php // Here is where we handle all emails, both standard and custom.
if ( ! empty ( $wpmem->admin->emails ) ) {
foreach( $wpmem->admin->emails as $email ) {
self::do_email_input( $email );
}
}
$arr = get_option( 'wpmembers_email_footer' );
$footer_args = array(
'body_input' => 'wpmembers_email_footer_body',
'body_value' => $arr,
); ?>
<tr valign="top">
<th scope="row"><strong><?php echo __( "Email Signature", 'wp-members' ); ?></strong> <span class="description"><?php _e( '(optional)', 'wp-members' ); ?></span></th>
<td><?php self::do_email_editor( $footer_args ); ?></td>
</tr>
<tr><td colspan="2"><hr /></td></tr>
<tr valign="top">
<th scope="row"> </th>
<td>
<input type="hidden" name="wpmem_admin_a" value="update_emails" />
<?php submit_button( __( 'Update Emails', 'wp-members' ) ); ?>
</td>
</tr>
</table>
</form>
</div><!-- .inside -->
</div><!-- #post-box -->
<div class="postbox">
<h3><span><?php _e( 'Need help?', 'wp-members' ); ?></span></h3>
<div class="inside">
<strong><i>See the <a href="https://rocketgeek.com/plugins/wp-members/docs/plugin-settings/emails/" target="_blank">Users Guide on email options</a>.</i></strong>
</div>
</div>
</div> <!-- #post-body-content -->
</div><!-- #post-body -->
</div><!-- .metabox-holder -->
<?php
}
추가하고 싶은 코드(인터넷에서 찾은 코드입니다)
add_action('registration_errors', 'sizeable_restrict_domains', 10, 3);
function sizeable_restrict_domains( $errors, $login, $email ) {
$whitelist = array(
'domain.com',
'website.com'
);
if ( is_email($email) ) {
$parts = explode('@', $email);
$domain = $parts[count($parts)-1];
$to = 'your@adminemail.com';
$subject = '이메일 제목';
$message = '다음 이메일 주소로 회원가입을 시도했습니다: ' . $email;
if ( !in_array(strtolower($domain), $whitelist) ) {
$errors->add('email_domain', __('오류: 승인된 이메일 주소만 등록할 수 있습니다.'));
wp_mail( $to, $subject, $message );
}
}
return $errors;
}
넣는 부분이 맞는지를 모르겠습니다.. 일단 이러한 기능을 넣을려고 검색을 했습니다만 성공하지 못했습니다.
도움을 주시면 감사하겠습니다!
안녕하세요~^^
wp-members를 사용하고 계신다면
wpmem_pre_register_data 액션을 사용해보실 수 있을 듯 합니다.
아래의 코드를 테마 functions.php 파일에
입력해보시겠어요?
add_action('wpmem_pre_register_data', 'wpmem_pre_register_data_0615', 10, 1);
function wpmem_pre_register_data_0615($fields){
global $wpmem_themsg;
if(!strpos($fields['user_email'], 'adminemail.com')){
$wpmem_themsg = '승인된 이메일 주소만 등록할 수 있습니다.';
}
return;
}
wp-member의 훅에 대한 가이드는
아래 링크에서 더 보실 수 있습니다.
https://rocketgeek.com/plugins/wp-members/docs/filter-hooks/
고맙습니다.