1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
<?php /** * Validation module. * * @package Meta Box */
/** * Validation class. */ class RWMB_Validation {
/** * Add hooks when module is loaded. */ public function __construct() { add_action( 'rwmb_after', array( $this, 'rules' ) ); add_action( 'rwmb_enqueue_scripts', array( $this, 'enqueue' ) ); }
/** * Output validation rules of each meta box. * The rules are outputted in [data-rules] attribute of an hidden <script> and will be converted into JSON by JS. * * @param RW_Meta_Box $object Meta Box object. */ public function rules( RW_Meta_Box $object ) { if ( ! empty( $object->meta_box['validation'] ) ) { echo '<script type="text/html" class="rwmb-validation-rules" data-rules="' . esc_attr( wp_json_encode( $object->meta_box['validation'] ) ) . '"></script>'; } }
/** * Enqueue scripts for validation. * * @param RW_Meta_Box $object Meta Box object. */ public function enqueue( RW_Meta_Box $object ) { if ( empty( $object->meta_box['validation'] ) ) { return; } wp_enqueue_script( 'jquery-validation', RWMB_JS_URL . 'jquery-validation/jquery.validate.min.js', array( 'jquery' ), '1.15.0', true ); wp_enqueue_script( 'jquery-validation-additional-methods', RWMB_JS_URL . 'jquery-validation/additional-methods.min.js', array( 'jquery-validation' ), '1.15.0', true ); wp_enqueue_script( 'rwmb-validate', RWMB_JS_URL . 'validate.js', array( 'jquery-validation', 'jquery-validation-additional-methods' ), RWMB_VER, true );
RWMB_Field::localize_script( 'rwmb-validate', 'rwmbValidate', array( 'summaryMessage' => esc_html__( 'Please correct the errors highlighted below and try again.', 'meta-box' ), ) ); } }
|