如何向选定的雇主隐藏简历

时间:2017-11-03 作者:vanurag

我正在编写WordPress wp job manager简历和wp job manager,在候选人仪表板下,我必须为候选人提供从所选公司隐藏简历的选项。

也就是说,如果候选人选择了公司X,那么X将无法查看候选人简历。

关于我如何完成这项任务的任何建议。

以下是我想实施的内容:

将创建多选dropodown公司名称,并在搜索简历页面和简历页面上检查所选公司。如果找到匹配项,则将隐藏恢复。

我还应该在mysql中创建一个单独的表,按候选人存储被阻止的公司

关于如何做到这一点的任何建议。

编辑:

我正在用下面的代码将候选人排除在外的公司列表存储在用户元中

$current_user = wp_get_current_user();
     $user_id=$current_user->ID;
    $meta_value[]= $_POST[\'exclude_company_from_search\'];
    $meta_key="exclude_from_employer_search";
    update_user_meta( $user_id, $meta_key, $meta_value );
现在我无法在搜索简历页面中过滤它。

以下是在我的函数中使用短代码排除的保存公司的完整代码。php。

  <?php
function custom_shortcode() {
    if(isset($_POST[\'exclude_company\'])){
         $current_user = wp_get_current_user();
         $user_id=$current_user->ID;
        $meta_value[]= $_POST[\'exclude_company_from_search\'];

        $merged = array_reduce($meta_value, \'array_merge\', array());
        $comma_separated_meta_value = implode(\',\', $merged);




        $meta_key="exclude_from_employer_search";
        update_user_meta( $user_id, $meta_key, $comma_separated_meta_value );

    }
     wp_enqueue_script( \'wp-job-manager-multiselect\' );
    global $wpdb;


$results = $wpdb->get_results("SELECT $wpdb->users.ID, $wpdb->usermeta.meta_value FROM $wpdb->users INNER JOIN $wpdb->usermeta ON ( $wpdb->users.ID = $wpdb->usermeta.user_id ) WHERE 1=1 AND ( $wpdb->usermeta.meta_key = \'_company_name\') ORDER BY user_login ASC" );
     ?>
     <form method="post" action="" name="ec" id="ec">
     <select multiple="multiple" data-placeholder="" name="exclude_company_from_search[]" id="exclude_company_from_search" class="job-manager-multiselect" data-no_results_text="No results match" data-multiple_text="Select Companies to Exclude">
    <?php foreach ( $results as $value ) :?>


        <option value="<?php echo esc_attr( $value->ID ); ?>" <?php if ( ! empty( $value->meta_value ) && is_array( $value->meta_value) ) selected( in_array( $key, $value->meta_value ), true ); ?>><?php echo esc_html( $value->meta_value ); ?></option>

    <?php endforeach; ?>
</select>
<input type="submit" name="exclude_company" id="exclude_company" value="Exclude Company" />
</form>
<?php
}
add_shortcode( \'exclude_company_list\', \'custom_shortcode\' );
?>
我无法在搜索简历页面中筛选它。

1 个回复
最合适的回答,由SO网友:Drupalizeme 整理而成

我会做出一些假设:

不使用自定义表所有简历都带有post类型的简历您对一些sql很熟悉

 SELECT * FROM wp_posts wp  WHERE wp.post_type = \'resume\' AND
 wp.post_author NOT IN (  SELECT distinct wu.umeta_id FROM wp_usermeta
 wu    WHERE wu.meta_key=\'exclude_from_search\' AND
 wu.meta_value=\'the_company_id\'
);
基本思路是首先获取不想显示特定公司简历的用户的所有ID。之后,根据您的过滤过程直接进行选择。

我之所以不使用自定义表,是因为可以支持多个values(entries) 同样的meta_keyuser_id. 这可以帮助你keep track 在所有用户首选项中,取决于隐藏的简历。

结束

相关推荐

Virtual Pages plugins

我很难让插件正常工作Virtual Pages (WordPress插件可简化虚拟页面的创建)我确实进行了编辑,根据查询创建了一个循环。add_action( \'gm_virtual_pages\', function( $controller ) { /* Creating virtuals pages for companies */ $args = array( \'post_type\' => array(\'companies\',), \'post_status\'