반응형
Wordpress 사용자 지정 필드에 대한 최종 구성원 편집 검색 필터
Wordpress 플러그인 Ultimate 멤버의 검색 필터를 편집할 수 있는 방법이 있습니까?표준 필터에는 백엔드에서 선택된 유일한 필드가 포함되어 검색 사용자는 지정된 모든 필드(논리 및)와 일치해야 합니다.일부 필드에 대해 검색을 편집하고 더 많은 기능(또는 그 이상)을 추가할 수 있는 방법을 원합니다.아직까지는 글로벌 $wpdb 변수 또는 기타 방법에 기반하여 검색이 어떻게 제안되는지 파악하지 못했습니다.
이 예에서는 Ajax를 사용하여 조건에 따라 사용자를 검색하고 있습니다.여기서는 country를 사용하고 있습니다.도시 리스트는 이미 배열로 정의되어 있으며, 여기에 루프 형태로 호출합니다.
<?php /*Template Name: Users* /?>
<div class="row">
<div class="col mb-2">
<h5 class="mb-3" >
<?php echo __('Advanced','booksinfo') ?>
</h5>
<input class="form-control mb-2" placeholder="<?php echo __('User name','booksinfo') ?>" name="username" id="username" onkeyup="users_fetch()" />
<select name="usercountry" id="usercountry" class="form-control" onchange="users_fetch()">
<option value="all" ><?php echo __('All countries','booksinfo') ?></option>
<?php
$user_country = get_user_meta( $current_user->ID, 'user_registration_user_country', true );
foreach ($countrys_list as $country ) {
echo "<option value=\"$country\">".esc_html__($country,'booksinfo') ."</option>";
}
?>
</select>
</div>
<div class="col-md-9">
<div class="row" id="users_list_div">
<script>
jQuery.ajax({
url: '<?php echo admin_url('admin-ajax.php'); ?>',
type: 'post',
data: { action: 'users_data_fetch'},
success: function(data) {
jQuery('#users_list_div').html( data );
}
});
</script>
</div>
</div>
</div>
자, 이제 이름과 도시별로 사용자를 검색할 수 있는 폼을 완성했으므로 기능별로 코드를 준비하고 있습니다.php
// add the ajax fetch js
function users_ajax_fetch() {
?>
<script type="text/javascript">
function users_fetch(){
jQuery.ajax({
url: '<?php echo admin_url('admin-ajax.php'); ?>',
type: 'post',
data: { action: 'users_data_fetch', username: jQuery('#username').val(), usercountry: jQuery('#usercountry').val() },
success: function(data) {
jQuery('#users_list_div').html( data );
}
});
}
</script>
<?php
}
add_action( 'wp_footer', 'users_ajax_fetch' );
function users_data_fetch(){
if( $_POST['username']){
if($_POST['usercountry'] != 'all'){
$user_country = $_POST['usercountry'];
$compare_country = '=';
}else{
$user_country = '';
$compare_country = 'LIKE';
}
$args = array(
'orderby' => 'first_name',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'user_registration_user_country',
'value' => $user_country,
'compare' => $compare_country,
),
array(
'key' => 'nickname',
'value' => $_POST['username'],
'compare' => 'LIKE',
)
)
);
//}
$users = get_users( $args );
$users_result = $users[0]->ID;
if($users_result){
foreach ( $users as $user ) {
$user_pic = get_user_meta( $user->ID, 'profilepicture', true );
$user_type = get_user_meta( $user->ID, 'user_registration_user_type', true );
?>
<div class="col-xl-4 col-md-6 col-sm-6 text-center mb-3">
<div class="col border pt-2">
<a href="<?php echo get_site_url() .'/author/'. $user->user_nicename ?>" >
<? if($user_pic){ ?>
<div class="" style="background:url('<?php echo $user_pic ?>');width:110px;height:110px;margin: auto;background-size: cover;background-position: center; border-radius: 100px;" ></div>
<?php
}else{
echo '<img src="' . get_template_directory_uri() . '/images/user.svg" style="border-radius:100px;width:110px;height:110px;margin">';
//echo get_avatar( $curauth->user_email , '120 ');
}
</a>
<div class="mt-1 mb-3">
<?php echo $user->display_name; ?>
</div>
<div class="row">
<a class="col text-center btn btn-success" href="<?php echo get_site_url() .'/author/'. $user->user_nicename ?>" >
<?php echo __('View prfile','booksinfo') ?>
</a>
</div>
</div>
</div>
<?php
}
}else{ ?>
<h5 class="text-center mx-auto mt-3">
<?php echo __('What you are looking for is not currently found. Please check the case','booksinfo'); ?>
</h5>
<?php }
}
}
add_action('wp_ajax_nopriv_users_data_fetch','users_data_fetch');
add_action('wp_ajax_users_data_fetch' , 'users_data_fetch');
이것이 가장 좋은 방법입니다.여기 페이지 링크의 예를 나타냅니다.
언급URL : https://stackoverflow.com/questions/34970928/wordpress-ultimate-member-edit-search-filters-for-custom-fields
반응형
'programing' 카테고리의 다른 글
Woocommerce 3에서 카트 품목 가격 변경 (0) | 2023.03.09 |
---|---|
잘못된 요청 - 호스트와 포트의 이 조합에는 TLS가 필요합니다.스프링 부트 포함 (0) | 2023.03.09 |
를 도입하기 위해 필요한 최소 셋업은 무엇입니까?Oracle 클라이언트 11을 사용하는 NET 애플리케이션 (0) | 2023.03.09 |
Spring Boot 명령줄 응용 프로그램을 셧다운하는 방법 (0) | 2023.03.09 |
WordPress JSON API가 404개의 오류만 반환합니다. (0) | 2023.03.09 |