class-simple-job-board-meta-box-job-data.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php if (!defined('ABSPATH')) { exit; } // Exit if accessed directly
  2. /**
  3. * Simple_Job_Board_Meta_box_Job_Data Class
  4. *
  5. * This meta box is designed to store company name, website, tagline and logo.
  6. *
  7. * @link https://wordpress.org/plugins/simple-job-board
  8. * @since 2.2.3
  9. * @since 2.4.0 Improved Sanitization & Escaping of Inputs & Outputs
  10. *
  11. *
  12. * @package Simple_Job_Board
  13. * @subpackage Simple_Job_Board/admin/partials/meta-boxes
  14. * @author PressTigers <support@presstigers.com>
  15. */
  16. class Simple_Job_Board_Meta_Box_Job_Data {
  17. /**
  18. * Add job data meta box options.
  19. *
  20. * @since 2.2.3
  21. */
  22. public static function sjb_meta_box_output() {
  23. // Add a nonce field so we can check for it later.
  24. wp_nonce_field( 'sjb_jobpost_meta_box', 'jobpost_meta_box_nonce' );
  25. echo '<div class="simple-job-board-metabox">';
  26. Simple_Job_Board_Meta_box_Job_Data::text('_company_name', esc_html__('Company Name', 'simple-job-board'), '');
  27. Simple_Job_Board_Meta_box_Job_Data::text('_company_website', esc_html__('Company Website', 'simple-job-board'), '');
  28. Simple_Job_Board_Meta_box_Job_Data::text('_company_tagline', esc_html__('Company Tagline', 'simple-job-board'), '');
  29. Simple_Job_Board_Meta_box_Job_Data::upload('_company_logo', esc_html__('Company Logo', 'simple-job-board'), '');
  30. echo '</div>';
  31. }
  32. /**
  33. * Job data meta box option fields.
  34. *
  35. * @since 2.1.0
  36. *
  37. * @param string $id field id
  38. * @param string $label field lable
  39. * @param string $desc field description
  40. * @return string $html field html
  41. */
  42. public static function text($id, $label, $desc = '') {
  43. global $post;
  44. $html = '<p class="metabox-field">';
  45. $html .= '<label for="simple_job_board' . $id . '">' . $label . '</label>';
  46. $html .= '<input type="text" id="simple_job_board' . $id . '" name="simple_job_board' . $id . '" value="' . esc_attr( get_post_meta($post->ID, 'simple_job_board' . $id, TRUE) ) . '" />';
  47. if ($desc) {
  48. $html .= '<span class="tips">' . $desc . '</span>';
  49. }
  50. $html .= '</p>';
  51. echo $html;
  52. }
  53. /**
  54. * Upload logo field
  55. *
  56. * @since 2.1.0
  57. *
  58. * @param string $id Field id
  59. * @param string $label Field lable
  60. * @param string $desc Field description
  61. * @return string $html Field html
  62. */
  63. public static function upload($id, $label, $desc = '') {
  64. global $post;
  65. ?>
  66. <p class="metabox-field">
  67. <label for="simple_job_board<?php echo $id; ?>"><?php echo $label; ?></label>
  68. <span class="file_url">
  69. <input type="text" name="simple_job_board<?php echo $id; ?>" id="simple_job_board<?php echo $id; ?>" class="upload_field" placeholder="URL to the company logo" value="<?php echo esc_url( get_post_meta($post->ID, 'simple_job_board' . $id, TRUE) ); ?>" />
  70. <button type="button" class="button simple-job-board-upload-button"><?php esc_html_e('Upload', 'simple-job-board'); ?></button>
  71. </span>
  72. <?php if ( $desc ) : ?>
  73. <p><?php echo $desc; ?></p>
  74. <?php endif; ?>
  75. </p>
  76. <?php
  77. }
  78. /**
  79. * Save job data meta box.
  80. *
  81. * @since 2.2.3
  82. *
  83. * @param int $post_id Post id
  84. * @return void
  85. */
  86. public static function sjb_save_jobpost_meta($post_id)
  87. {
  88. $POST_data = filter_input_array( INPUT_POST );
  89. foreach ( $POST_data as $key => $value )
  90. {
  91. if (strstr($key, 'simple_job_board')) {
  92. update_post_meta( $post_id, sanitize_key( $key ), $value );
  93. }
  94. }
  95. }
  96. }