initial commit
[danixland-contact-form.git] / include / dnxcf_options-register.php
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