给 WPJobManager 发布工作、单篇工作帖子信息中增加工资字段。

标签: 

  • 该话题包含 3 个回复,1 人参与,最后由诗语 更新于 7 年前
正在查看 4 个帖子:1-4 (共 4 个帖子)
  • 作者
    帖子
  • 诗语
    管理员
    • 文章数量: 5,942
    发帖数:9997
    楼主
    @feibisi

    实现的效果如下:

    需要添加段代码到主题的 functions.php 文件中。

    诗语
    管理员
    • 文章数量: 5,942
    发帖数:9997
    楼主
    @feibisi

    先贴上原始代码如下:

    
    // Add your own function to filter the fields in admin
    add_filter( 'job_manager_job_listing_data_fields', 'admin_add_salary_field' );
        // Here we create the function for this custom field in admin  
        function admin_add_salary_field( $fields ) {
      $fields['_job_salary'] = array(
        'label'       => __( 'Salary ($)', 'job_manager' ),
        'type'        => 'text',
        'placeholder' => 'e.g. 20000',
        'description' => ''
      );
      return $fields;
    }
    // Add your own function to filter the fields in frontend
    add_filter( 'submit_job_form_fields', 'frontend_add_salary_field' );
        // Here we create the function for this custom field in frontend
    function frontend_add_salary_field( $fields ) {
      $fields['job']['job_salary'] = array(
        'label'       => __( 'Salary ($)', 'job_manager' ),
        'type'        => 'text',
        'required'    => true,
        'placeholder' => 'e.g. 20000',
        'priority'    => 7
      );
      return $fields;
    }
    // Add your salary field to display on single job page
    add_action( 'single_job_listing_meta_end', 'display_job_salary_data' );
        // Here we create the function for this custom field to display on single job page 
       function display_job_salary_data() {
      global $post;
      $salary = get_post_meta( $post->ID, '_job_salary', true );
      if ( $salary ) {
        echo '<li>' . __( 'Salary:' ) . ' $' . esc_html( $salary ) . '</li>';
      }
    }

    为了适应国内的环境,和本地化要修改几个字符串和小地方。

    修改后如下:

    
    // Add your own function to filter the fields in admin
    add_filter( 'job_manager_job_listing_data_fields', 'admin_add_salary_field' );
        // Here we create the function for this custom field in admin
        function admin_add_salary_field( $fields ) {
      $fields['_job_salary'] = array(
        'label'       => __( ' 工资 (¥)', 'job_manager' ),
        'type'        => 'text',
        'placeholder' => 'e.g. 20000',
        'description' => ''
      );
      return $fields;
    }
    // Add your own function to filter the fields in frontend
    add_filter( 'submit_job_form_fields', 'frontend_add_salary_field' );
        // Here we create the function for this custom field in frontend
    function frontend_add_salary_field( $fields ) {
      $fields['job']['job_salary'] = array(
        'label'       => __( ' 工资 (¥)', 'job_manager' ),
        'type'        => 'text',
        'required'    => true,
        'placeholder' => 'e.g. 20000',
        'priority'    => 7
      );
      return $fields;
    }
    // Add your salary field to display on single job page
    add_action( 'single_job_listing_meta_end', 'display_job_salary_data' );
        // Here we create the function for this custom field to display on single job page
       function display_job_salary_data() {
      global $post;
      $salary = get_post_meta( $post->ID, '_job_salary', true );
      if ( $salary ) {
        echo '<li class="salary" >' . __( ' 工资:' ) . ' ¥' . esc_html( $salary ) . '</li>';
    	  }
    }
    

    这样就可以正常显示了。

    诗语
    管理员
    • 文章数量: 5,942
    发帖数:9997
    楼主
    @feibisi

    感兴趣的朋友可以自己预览下效果:

    https://job.weixiaoduo.com/job/604

    诗语
    管理员
    • 文章数量: 5,942
    发帖数:9997
    楼主
    @feibisi
    
    // 我的账户添加发布工作标签
    // 1. Register new endpoint to use for My Account page
    // Note: Resave Permalinks or it will give 404 error
    
    function bbloomer_add_submit_job_form_endpoint() {
        add_rewrite_endpoint( 'submit-job-form', EP_ROOT | EP_PAGES );
    }
    
    add_action( 'init', 'bbloomer_add_submit_job_form_endpoint' );
    
    // ------------------
    // 2. Add new query var
    
    function bbloomer_submit_job_form_query_vars( $vars ) {
        $vars[] = 'submit-job-form';
        return $vars;
    }
    
    add_filter( 'query_vars', 'bbloomer_submit_job_form_query_vars', 0 );
    
    // ------------------
    // 3. Insert the new endpoint into the My Account menu
    
    function bbloomer_add_submit_job_form_link_my_account( $items ) {
        $items['submit-job-form'] = ' 发布工作';
        return $items;
    }
    
    add_filter( 'woocommerce_account_menu_items', 'bbloomer_add_submit_job_form_link_my_account' );
    
    // ------------------
    // 4. Add content to the new endpoint
    
    function bbloomer_submit_job_form_content() {
    echo '<h3>Premium WooCommerce Support</h3><p>Welcome to the WooCommerce support area. As a premium customer, you can submit a ticket should you have any WooCommerce issues with your website, snippets or customization. <i>Please contact your theme/plugin developer for theme/plugin-related support.</i></p>';
    echo do_shortcode( '[submit_job_form]' );
    }
    
    add_action( 'woocommerce_account_submit-job-form_endpoint', 'bbloomer_submit_job_form_content' );
    
    // 我的账户添加创建简历标签
    // 1. Register new endpoint to use for My Account page
    // Note: Resave Permalinks or it will give 404 error
    
    function bbloomer_add_submit_resume_form_endpoint() {
    		add_rewrite_endpoint( 'submit-resume-form', EP_ROOT | EP_PAGES );
    }
    
    add_action( 'init', 'bbloomer_add_submit_resume_form_endpoint' );
    
    // ------------------
    // 2. Add new query var
    
    function bbloomer_submit_resume_form_query_vars( $vars ) {
    		$vars[] = 'submit-resume-form';
        return $vars;
    }
    
    add_filter( 'query_vars', 'bbloomer_submit_resume_form_query_vars', 0 );
    
    // ------------------
    // 3. Insert the new endpoint into the My Account menu
    
    function bbloomer_add_submit_resume_form_link_my_account( $items ) {
    		$items['submit-resume-form'] = ' 创建简历';
        return $items;
    }
    
    add_filter( 'woocommerce_account_menu_items', 'bbloomer_add_submit_resume_form_link_my_account' );
    
    // ------------------
    // 4. Add content to the new endpoint
    
    function bbloomer_submit_resume_form_content() {
    echo '<h3>Premium WooCommerce Support</h3><p>Welcome to the WooCommerce support area. As a premium customer, you can submit a ticket should you have any WooCommerce issues with your website, snippets or customization. <i>Please contact your theme/plugin developer for theme/plugin-related support.</i></p>';
    echo do_shortcode( '[submit_resume_form]' );
    
    }
    
    add_action( 'woocommerce_account_submit-resume-form_endpoint', 'bbloomer_submit_resume_form_content' );
    
    // 我的账户添加创建简历标签
    // 1. Register new endpoint to use for My Account page
    // Note: Resave Permalinks or it will give 404 error
    
    function bbloomer_add_adverts_add_endpoint() {
    		add_rewrite_endpoint( 'adverts-add', EP_ROOT | EP_PAGES );
    }
    
    add_action( 'init', 'bbloomer_add_adverts_add_endpoint' );
    
    // ------------------
    // 2. Add new query var
    
    function bbloomer_adverts_add_query_vars( $vars ) {
    		$vars[] = 'adverts-add';
        return $vars;
    }
    
    add_filter( 'query_vars', 'bbloomer_adverts_add_query_vars', 0 );
    
    // ------------------
    // 3. Insert the new endpoint into the My Account menu
    
    function bbloomer_add_adverts_add_link_my_account( $items ) {
    		$items['adverts-add'] = ' 张贴广告';
        return $items;
    }
    
    add_filter( 'woocommerce_account_menu_items', 'bbloomer_add_adverts_add_link_my_account' );
    
    // ------------------
    // 4. Add content to the new endpoint
    
    function bbloomer_adverts_add_content() {
    echo '<h3>Premium WooCommerce Support</h3><p>Welcome to the WooCommerce support area. As a premium customer, you can submit a ticket should you have any WooCommerce issues with your website, snippets or customization. <i>Please contact your theme/plugin developer for theme/plugin-related support.</i></p>';
    echo do_shortcode( '[adverts_add]' );
    
    }
    
    add_action( 'woocommerce_account_adverts-add_endpoint', 'bbloomer_adverts_add_content' );
    
正在查看 4 个帖子:1-4 (共 4 个帖子)
  • 哎呀,回复话题必需登录。

话题信息