class-simple-job-board-public.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. /**
  3. * Simple_Job_Board_Public Class
  4. *
  5. * The public-facing functionality of the plugin.
  6. *
  7. * @link https://wordpress.org/plugins/simple-job-board
  8. * @since 1.0.0
  9. *
  10. * @package Simple_Job_Board
  11. * @subpackage Simple_Job_Board/public
  12. * @author PressTigers <support@presstigers.com>
  13. */
  14. class Simple_Job_Board_Public {
  15. /**
  16. * The ID of this plugin.
  17. *
  18. * @since 1.0.0
  19. * @access private
  20. * @var string $simple_job_board The ID of this plugin.
  21. */
  22. private $simple_job_board;
  23. /**
  24. * The version of this plugin.
  25. *
  26. * @since 1.0.0
  27. * @access private
  28. * @var string $version The current version of this plugin.
  29. */
  30. private $version;
  31. /**
  32. * Initialize the class and set its properties.
  33. *
  34. * @since 1.0.0
  35. * @param string $simple_job_board The name of the plugin.
  36. * @param string $version The version of this plugin.
  37. */
  38. public function __construct($simple_job_board, $version) {
  39. $this->simple_job_board = $simple_job_board;
  40. $this->version = $version;
  41. /**
  42. * The class responsible for defining all the custom post types in the admin area.
  43. */
  44. require_once plugin_dir_path(dirname(__FILE__)) . 'includes/class-simple-job-board-post-types-init.php';
  45. /**
  46. * The class responsible for defining all the shortcodes in the front end area.
  47. */
  48. require_once plugin_dir_path(dirname(__FILE__)) . 'includes/class-simple-job-board-shortcode-jobpost.php';
  49. /**
  50. * The class responsible for Ajax Call on Job Submission in the front end area.
  51. */
  52. require_once plugin_dir_path(dirname(__FILE__)) . 'includes/class-simple-job-board-ajax.php';
  53. /**
  54. * The class responsible for Sending email notificatins to Applicant, Admin & HR.
  55. */
  56. require_once plugin_dir_path(dirname(__FILE__)) . 'includes/class-simple-job-board-notifications.php';
  57. /**
  58. * The class responsible for loading job board typography.
  59. */
  60. require_once plugin_dir_path(dirname(__FILE__)) . 'public/class-simple-job-board-typography.php';
  61. // Action -> Load Template Functions.
  62. add_action( 'after_setup_theme', array( $this, 'sjb_template_functions' ), 11 );
  63. }
  64. /**
  65. * Register the stylesheets for the public-facing side of the site.
  66. *
  67. * @since 1.0.0
  68. * @since 2.4.0 Updated Outdated Styles
  69. */
  70. public function enqueue_styles() {
  71. // Enqueue Google Fonts
  72. wp_enqueue_style( $this->simple_job_board . '-google-fonts', 'https://fonts.googleapis.com/css?family=Roboto:100,100i,300,300i,400,400i,500,500i,700,700i,900,900i', array(), $this->version, 'all');
  73. // Enqueue Font Awesome Styles
  74. wp_enqueue_style( $this->simple_job_board . '-font-awesome', plugin_dir_url(__FILE__) . 'css/font-awesome.min.css', array(), '4.7.0', 'all' );
  75. wp_enqueue_style( $this->simple_job_board . '-jquery-ui', plugin_dir_url(__FILE__) . 'css/jquery-ui.css', array(), '1.12.1', 'all' );
  76. // Enqueue Front-end RTL Styles
  77. if(is_rtl()) {
  78. wp_enqueue_style( $this->simple_job_board . '-frontend-rtl', plugin_dir_url(__FILE__) . 'css/rtl/simple-job-board-public-rtl.css', array(), '2.0.0', 'all');
  79. } else {
  80. wp_enqueue_style( $this->simple_job_board . '-frontend', plugin_dir_url(__FILE__) . 'css/simple-job-board-public.css', array(), '3.0.0', 'all' );
  81. }
  82. }
  83. /**
  84. * Register the stylesheets for the public-facing side of the site.
  85. *
  86. * @since 1.0.0
  87. * @since 2.4.0 Updated InputTel Scripts
  88. */
  89. public function enqueue_scripts() {
  90. // Register Simple Job Board Front-end Core JS
  91. wp_register_script( $this->simple_job_board . '-front-end', plugin_dir_url(__FILE__) . 'js/simple-job-board-public.js', array('jquery', 'jquery-ui-datepicker'), '1.4.0', TRUE );
  92. // Register Input Telephone JS
  93. wp_register_script( $this->simple_job_board . '-validate-telephone-input', plugin_dir_url(__FILE__) . 'js/intlTelInput.min.js', array(), '9.2.4', TRUE );
  94. wp_register_script( $this->simple_job_board . '-validate-telephone-input-utiliy', plugin_dir_url(__FILE__) . 'js/intlTelInput-utils.js', array(), '7.7.3', TRUE );
  95. wp_localize_script(
  96. $this->simple_job_board . '-front-end',
  97. 'application_form',
  98. array(
  99. 'ajaxurl' => esc_js( admin_url('admin-ajax.php') ),
  100. 'setting_extensions' => is_array( get_option('job_board_upload_file_ext') ) ? array_map( 'esc_js', get_option('job_board_upload_file_ext') ) : esc_js( get_option('job_board_upload_file_ext') ),
  101. 'all_extensions_check' => esc_js( get_option('job_board_all_extensions_check') ),
  102. 'allowed_extensions' => is_array( get_option('job_board_allowed_extensions') ) ? array_map( 'esc_js', get_option('job_board_allowed_extensions') ) : esc_js( get_option('job_board_allowed_extensions') ),
  103. 'job_listing_content' => esc_js( get_option('job_board_listing') ),
  104. 'jobpost_content' => esc_js( get_option('job_board_jobpost_content') ),
  105. 'jquery_alerts' => array(
  106. 'invalid_extension' => apply_filters( 'sjb_invalid_file_ext_alert', esc_html__( 'This is not an allowed file extension.', 'simple-job-board' ) ),
  107. 'application_not_submitted' => apply_filters( 'sjb_job_not_submitted_alert', esc_html__('Your application could not be processed.', 'simple-job-board') ),
  108. ),
  109. 'file' =>array(
  110. 'browse' => esc_html__('Browse', 'simple-job-board'),
  111. 'no_file_chosen' => esc_html__('No file chosen', 'simple-job-board'),
  112. )
  113. )
  114. );
  115. }
  116. /**
  117. * Load Templates
  118. *
  119. * @since 2.1.0
  120. */
  121. public function sjb_template_functions() {
  122. include( 'partials/simple-job-board-template-functions.php' );
  123. }
  124. }