PluginProbe ʕ •ᴥ•ʔ
WP Job Manager / 2.4.7
WP Job Manager v2.4.7
2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.1.0 1.1.1 1.1.2 1.1.3 1.10.0 1.11.0 1.11.1 1.12.0 1.12.1 1.13.0 1.14.0 1.15.0 1.16.0 1.16.1 1.17.0 1.18.0 1.19.0 1.2.0 1.20.0 1.20.1 1.21.0 1.21.1 1.21.2 1.21.3 1.21.4 1.22.0 1.22.1 1.22.2 1.22.3 1.23.0 1.23.1 1.23.10 1.23.11 1.23.12 1.23.13 1.23.2 1.23.3 1.23.4 1.23.5 1.23.6 1.23.7 1.23.8 1.23.9 1.24.0 1.24.0.1 1.25.0 1.25.0.1 1.25.1 1.25.1.1 1.25.2 1.25.2.1 1.25.3 1.25.3.1 1.26.0 1.26.0.1 1.26.1 1.26.1.1 1.26.2 1.26.2.1 1.27.0 1.27.0.1 1.28.0 1.28.0.1 1.29.0 1.29.0.1 1.29.1 1.29.1.1 1.29.2 1.29.2.1 1.29.3 1.29.3.1 1.3.0 1.3.1 1.30.0 1.30.0.1 1.30.1 1.30.1.1 1.30.2 1.30.2.1 1.31.0 1.31.0.1 1.31.1 1.31.1.1 1.31.2 1.31.3 1.32.0 1.32.1 1.32.2 1.32.3 1.33.0 1.33.1 1.33.2 1.33.3 1.33.4 1.33.5 1.34.0 1.34.1 1.34.2 1.34.3 1.34.4 1.34.5 1.35.0 1.35.1 1.35.2 1.35.3 1.36.0 1.36.1 1.36.2 1.37.0 1.38.0 1.38.1 1.39.0 1.4.0 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.7.1 1.7.3 1.8.0 1.8.1 1.8.2 1.9.0 1.9.1 1.9.2 1.9.3 2.0.0 2.1.0 2.1.1 2.2.0 2.2.1 2.2.2 2.3.0 2.4.0 2.4.1
wp-job-manager / includes / class-wp-job-manager-forms.php
wp-job-manager / includes Last commit date
3rd-party 4 days ago abstracts 3 months ago admin 2 weeks ago emails 2 weeks ago forms 4 days ago helper 3 months ago promoted-jobs 4 days ago ui 2 weeks ago widgets 2 weeks ago class-access-token.php 2 years ago class-dev-tools.php 2 years ago class-guest-session.php 2 years ago class-guest-user.php 2 years ago class-job-dashboard-shortcode.php 6 months ago class-job-listing-stats.php 2 years ago class-job-overlay.php 2 years ago class-stats-dashboard.php 2 years ago class-stats-script.php 3 months ago class-stats.php 3 months ago class-wp-job-manager-ajax.php 2 months ago class-wp-job-manager-api.php 6 years ago class-wp-job-manager-blocks.php 2 weeks ago class-wp-job-manager-cache-helper.php 3 months ago class-wp-job-manager-category-walker.php 6 years ago class-wp-job-manager-com-api.php 2 years ago class-wp-job-manager-data-cleaner.php 2 years ago class-wp-job-manager-data-exporter.php 3 months ago class-wp-job-manager-dependency-checker.php 2 years ago class-wp-job-manager-email-notifications.php 2 years ago class-wp-job-manager-forms.php 5 years ago class-wp-job-manager-geocode.php 2 weeks ago class-wp-job-manager-install.php 2 years ago class-wp-job-manager-post-types.php 4 days ago class-wp-job-manager-recaptcha.php 6 months ago class-wp-job-manager-rest-api.php 2 months ago class-wp-job-manager-shortcodes.php 2 weeks ago class-wp-job-manager-usage-tracking-data.php 2 years ago class-wp-job-manager-usage-tracking.php 2 years ago class-wp-job-manager-widget.php 2 weeks ago class-wp-job-manager.php 3 months ago trait-singleton.php 2 years ago
class-wp-job-manager-forms.php
107 lines
1 <?php
2 /**
3 * File containing the class WP_Job_Manager_Forms.
4 *
5 * @package wp-job-manager
6 */
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit;
10 }
11
12 /**
13 * Base class for all WP Job Manager forms.
14 *
15 * @since 1.0.0
16 */
17 class WP_Job_Manager_Forms {
18
19 /**
20 * The single instance of the class.
21 *
22 * @var self
23 * @since 1.26.0
24 */
25 private static $instance = null;
26
27 /**
28 * Allows for accessing single instance of class. Class should only be constructed once per call.
29 *
30 * @since 1.26.0
31 * @static
32 * @return self Main instance.
33 */
34 public static function instance() {
35 if ( is_null( self::$instance ) ) {
36 self::$instance = new self();
37 }
38 return self::$instance;
39 }
40
41 /**
42 * Constructor.
43 */
44 public function __construct() {
45 add_action( 'init', [ $this, 'load_posted_form' ] );
46 }
47
48 /**
49 * If a form was posted, load its class so that it can be processed before display.
50 */
51 public function load_posted_form() {
52 // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Input is used safely.
53 $job_manager_form = ! empty( $_REQUEST['job_manager_form'] ) ? sanitize_title( wp_unslash( $_REQUEST['job_manager_form'] ) ) : false;
54
55 if ( ! empty( $job_manager_form ) ) {
56 $this->load_form_class( $job_manager_form );
57 }
58 }
59
60 /**
61 * Load a form's class
62 *
63 * @param string $form_name
64 * @return bool|WP_Job_Manager_Form Class instance on success, false on failure.
65 */
66 private function load_form_class( $form_name ) {
67 if ( ! class_exists( 'WP_Job_Manager_Form' ) ) {
68 include 'abstracts/abstract-wp-job-manager-form.php';
69 }
70
71 // Now try to load the form_name.
72 $form_class = 'WP_Job_Manager_Form_' . str_replace( '-', '_', $form_name );
73 $form_file = JOB_MANAGER_PLUGIN_DIR . '/includes/forms/class-wp-job-manager-form-' . $form_name . '.php';
74
75 if ( class_exists( $form_class ) ) {
76 return call_user_func( [ $form_class, 'instance' ] );
77 }
78
79 if ( ! file_exists( $form_file ) ) {
80 return false;
81 }
82
83 if ( ! class_exists( $form_class ) ) {
84 include $form_file;
85 }
86
87 // Init the form.
88 return call_user_func( [ $form_class, 'instance' ] );
89 }
90
91 /**
92 * Returns the form content.
93 *
94 * @param string $form_name
95 * @param array $atts Optional passed attributes.
96 * @return string|null
97 */
98 public function get_form( $form_name, $atts = [] ) {
99 $form = $this->load_form_class( $form_name );
100 if ( $form ) {
101 ob_start();
102 $form->output( $atts );
103 return ob_get_clean();
104 }
105 }
106 }
107