b96bc758 |
1 | <?php |
2 | defined( 'ABSPATH' ) or die( 'No script kiddies please!' ); |
3 | |
4 | // include the file with the actual markup for the options to display |
5 | require( dirname( __FILE__ ) . '/dnxcf_options-display.php' ); |
6 | |
7 | /** |
8 | * Register the set of options required for the plugin to work |
9 | * @since 1.1.1 |
10 | */ |
11 | register_setting( 'dnxcf_options', 'dnxcf_options', 'dnxcf_setup_validate' ); |
12 | |
13 | // our validation function |
14 | function dnxcf_setup_validate( $input ) { |
15 | |
16 | $dnxcf_options = get_option('dnxcf_options'); |
17 | $valid_input = $dnxcf_options; |
18 | |
19 | $submit = ( ! empty( $input['submit'] ) ? true : false ); |
20 | $reset = ( ! empty( $input['reset'] ) ? true : false ); |
21 | |
22 | if($submit) { |
23 | $default_options = dnxcf_set_options(); |
24 | // content type |
25 | $valid_input['dnxcf_content_type'] = ( '1' == $input['dnxcf_content_type'] ? $default_options['dnxcf_content_type'] : "2" ); |
26 | // email address |
27 | $valid_input['dnxcf_recv_name'] = ( '' == $input['dnxcf_recv_name'] ? $default_options['dnxcf_recv_name'] : sanitize_text_field($input['dnxcf_recv_name']) ); |
28 | $valid_input['dnxcf_recv_email'] = ( '' == $input['dnxcf_recv_email'] ? $default_options['dnxcf_recv_email'] : sanitize_email($input['dnxcf_recv_email']) ); |
29 | // subject options |
30 | if ( '' == $input['dnxcf_subject'] ) { |
31 | $valid_input['dnxcf_subject'] = $default_options['dnxcf_subject']; |
32 | } else { |
33 | $valid_input['dnxcf_subject'] = rtrim(esc_textarea( $input['dnxcf_subject'] )); |
34 | $valid_input['dnxcf_subject'] = explode("\n", $valid_input['dnxcf_subject']); |
35 | } |
36 | // from email address and name |
37 | $valid_input['dnxcf_from_email'] = ( '' == $input['dnxcf_from_email'] ? $default_options['dnxcf_from_email'] : sanitize_email($input['dnxcf_from_email']) ); |
38 | $valid_input['dnxcf_from_name'] = ( '' == $input['dnxcf_from_name'] ? $default_options['dnxcf_from_name'] : sanitize_text_field($input['dnxcf_from_name']) ); |
39 | // privacy policy |
40 | $valid_html = array( |
41 | 'a' => array( |
42 | 'href' => array(), |
43 | 'title' => array() |
44 | ), |
45 | 'br' => array(), |
46 | 'em' => array(), |
47 | 'strong' => array(), |
48 | 'p' => array() |
49 | ); |
50 | $valid_input['dnxcf_privacy'] = ( '' == $input['dnxcf_privacy'] ? false : wp_kses($input['dnxcf_privacy'], $valid_html) ); |
51 | // latitude and longitude |
52 | $valid_input['dnxcf_gmap_message'] = ( '' == $input['dnxcf_gmap_message'] ? $default_options['dnxcf_gmap_message'] : sanitize_text_field($input['dnxcf_gmap_message']) ); |
53 | if ( '' != $input['dnxcf_latitude'] ) { |
54 | $valid_input['dnxcf_latitude'] = ( preg_match("/^[-]?[0-8]?[0-9]\.\d+|[-]?90\.0+?/A", $input['dnxcf_latitude']) ? $input['dnxcf_latitude'] : '' ); |
55 | } else { |
56 | $valid_input['dnxcf_latitude'] = ''; |
57 | } |
58 | $valid_input['dnxcf_apikey'] = ( '' == $input['dnxcf_apikey'] ? $default_options['dnxcf_apikey'] : sanitize_html_class($input['dnxcf_apikey']) ); |
59 | |
60 | if ( '' != $input['dnxcf_longitude'] ) { |
61 | $valid_input['dnxcf_longitude'] = ( preg_match("/[-]?1[0-7][0-9]\.\d+|[-]?[0-9]?[0-9]\.\d+|[-]?180\.0+?/A", $input['dnxcf_longitude']) ? $input['dnxcf_longitude'] : '' ); |
62 | } else { |
63 | $valid_input['dnxcf_longitude'] = ''; |
64 | } |
65 | } elseif ($reset) { |
66 | $default_options = dnxcf_set_options(); |
67 | // content type |
68 | $valid_input['dnxcf_content_type'] = $default_options['dnxcf_content_type']; |
69 | // email address |
70 | $valid_input['dnxcf_recv_name'] = $default_options['dnxcf_recv_name']; |
71 | $valid_input['dnxcf_recv_email'] = $default_options['dnxcf_recv_email']; |
72 | // subject options |
73 | $valid_input['dnxcf_subject'] = $default_options['dnxcf_subject']; |
74 | // from email address and name |
75 | $valid_input['dnxcf_from_email'] = $default_options['dnxcf_from_email']; |
76 | $valid_input['dnxcf_from_name'] = $default_options['dnxcf_from_name']; |
77 | // subject options |
78 | $valid_input['dnxcf_privacy'] = $default_options['dnxcf_privacy']; |
79 | // latitude and longitude |
80 | $valid_input['dnxcf_gmap_message'] = $default_options['dnxcf_gmap_message']; |
81 | $valid_input['dnxcf_apikey'] = $default_options['dnxcf_apikey']; |
82 | $valid_input['dnxcf_latitude'] = $default_options['dnxcf_latitude']; |
83 | $valid_input['dnxcf_longitude'] = $default_options['dnxcf_longitude']; |
84 | } |
85 | return $valid_input; |
86 | } |
87 | |