| @@ -23,1463 +23,1455 @@ | ||
| 23 | 23 | |
| 24 | 24 | namespace Cbx\Googlemap; |
| 25 | 25 | |
| 26 | 26 | // If this file is called directly, abort. |
| 27 | -if ( ! defined('WPINC')) { | |
| 28 | - die; | |
| 27 | +if ( ! defined( 'WPINC' ) ) { | |
| 28 | + die; | |
| 29 | 29 | } |
| 30 | 30 | |
| 31 | 31 | use Cbx\Googlemap\Helpers\CBXGooglemapHelper; |
| 32 | 32 | use Cbx\Googlemap\Helpers\CBXGooglemapMetaHelper; |
| 33 | 33 | |
| 34 | -final class CBXGoogleMapAdmin | |
| 35 | -{ | |
| 34 | +final class CBXGoogleMapAdmin { | |
| 36 | 35 | |
| 37 | - /** | |
| 38 | - * The ID of this plugin. | |
| 39 | - * | |
| 40 | - * @since 1.0.0 | |
| 41 | - * @access private | |
| 42 | - * @var string $plugin_name The ID of this plugin. | |
| 43 | - */ | |
| 44 | - private $plugin_name; | |
| 36 | + /** | |
| 37 | + * The ID of this plugin. | |
| 38 | + * | |
| 39 | + * @since 1.0.0 | |
| 40 | + * @access private | |
| 41 | + * @var string $plugin_name The ID of this plugin. | |
| 42 | + */ | |
| 43 | + private $plugin_name; | |
| 45 | 44 | |
| 46 | - /** | |
| 47 | - * The version of this plugin. | |
| 48 | - * | |
| 49 | - * @since 1.0.0 | |
| 50 | - * @access private | |
| 51 | - * @var string $version The current version of this plugin. | |
| 52 | - */ | |
| 53 | - private $version; | |
| 45 | + /** | |
| 46 | + * The version of this plugin. | |
| 47 | + * | |
| 48 | + * @since 1.0.0 | |
| 49 | + * @access private | |
| 50 | + * @var string $version The current version of this plugin. | |
| 51 | + */ | |
| 52 | + private $version; | |
| 54 | 53 | |
| 55 | - /** | |
| 56 | - * The ID of this plugin. | |
| 57 | - * | |
| 58 | - * @since 1.1.12 | |
| 59 | - * @access private | |
| 60 | - * @var string $settings The ID of this plugin. | |
| 61 | - */ | |
| 62 | - public $settings; | |
| 54 | + /** | |
| 55 | + * The ID of this plugin. | |
| 56 | + * | |
| 57 | + * @since 1.1.12 | |
| 58 | + * @access private | |
| 59 | + * @var string $settings The ID of this plugin. | |
| 60 | + */ | |
| 61 | + public $settings; | |
| 63 | 62 | |
| 64 | - /** | |
| 65 | - * Initialize the class and set its properties. | |
| 66 | - * | |
| 67 | - * | |
| 68 | - * @since 1.0.0 | |
| 69 | - */ | |
| 70 | - public function __construct() | |
| 71 | - { | |
| 72 | - $this->plugin_name = CBXGOOGLEMAP_PLUGIN_NAME; | |
| 73 | - $this->version = CBXGOOGLEMAP_PLUGIN_VERSION; | |
| 63 | + /** | |
| 64 | + * Initialize the class and set its properties. | |
| 65 | + * | |
| 66 | + * | |
| 67 | + * @since 1.0.0 | |
| 68 | + */ | |
| 69 | + public function __construct() { | |
| 70 | + $this->plugin_name = CBXGOOGLEMAP_PLUGIN_NAME; | |
| 71 | + $this->version = CBXGOOGLEMAP_PLUGIN_VERSION; | |
| 74 | 72 | |
| 75 | - //get instance of setting api | |
| 76 | - $this->settings = new CBXGooglemapSettings(); | |
| 77 | - }//end of construtor | |
| 73 | + //get instance of setting api | |
| 74 | + $this->settings = new CBXGooglemapSettings(); | |
| 75 | + }//end of construtor | |
| 78 | 76 | |
| 79 | - /** | |
| 80 | - * Initialize setting | |
| 81 | - */ | |
| 82 | - public function setting_init() | |
| 83 | - { | |
| 84 | - //set the settings | |
| 85 | - $this->settings->set_sections($this->get_settings_sections()); | |
| 86 | - $this->settings->set_fields($this->get_settings_fields()); | |
| 87 | - //initialize settings | |
| 88 | - $this->settings->admin_init(); | |
| 89 | - }//end setting_init | |
| 77 | + /** | |
| 78 | + * Initialize setting | |
| 79 | + */ | |
| 80 | + public function setting_init() { | |
| 81 | + //set the settings | |
| 82 | + $this->settings->set_sections( $this->get_settings_sections() ); | |
| 83 | + $this->settings->set_fields( $this->get_settings_fields() ); | |
| 84 | + //initialize settings | |
| 85 | + $this->settings->admin_init(); | |
| 86 | + }//end setting_init | |
| 90 | 87 | |
| 91 | - /** | |
| 92 | - * Global Setting Sections | |
| 93 | - * | |
| 94 | - * | |
| 95 | - * @return array | |
| 96 | - */ | |
| 97 | - public function get_settings_sections() | |
| 98 | - { | |
| 99 | - return apply_filters( | |
| 100 | - 'cbxgooglemap_setting_sections', [ | |
| 101 | - [ | |
| 102 | - 'id' => 'cbxgooglemap_general', | |
| 103 | - 'title' => esc_html__('Default Config', 'cbxgooglemap') | |
| 104 | - ], | |
| 105 | - [ | |
| 106 | - 'id' => 'cbxgooglemap_demo', | |
| 107 | - 'title' => esc_html__('Demo & Shortcodes', 'cbxgooglemap') | |
| 108 | - ], | |
| 109 | - [ | |
| 110 | - 'id' => 'cbxgooglemap_tools', | |
| 111 | - 'title' => esc_html__('Tools', 'cbxgooglemap'), | |
| 112 | - ] | |
| 113 | - ] | |
| 114 | - ); | |
| 115 | - }//end get_settings_sections | |
| 88 | + /** | |
| 89 | + * Global Setting Sections | |
| 90 | + * | |
| 91 | + * | |
| 92 | + * @return array | |
| 93 | + */ | |
| 94 | + public function get_settings_sections() { | |
| 95 | + return apply_filters( | |
| 96 | + 'cbxgooglemap_setting_sections', [ | |
| 97 | + [ | |
| 98 | + 'id' => 'cbxgooglemap_general', | |
| 99 | + 'title' => esc_html__( 'Default Config', 'cbxgooglemap' ) | |
| 100 | + ], | |
| 101 | + [ | |
| 102 | + 'id' => 'cbxgooglemap_demo', | |
| 103 | + 'title' => esc_html__( 'Demo & Shortcodes', 'cbxgooglemap' ) | |
| 104 | + ], | |
| 105 | + [ | |
| 106 | + 'id' => 'cbxgooglemap_tools', | |
| 107 | + 'title' => esc_html__( 'Tools', 'cbxgooglemap' ), | |
| 108 | + ] | |
| 109 | + ] | |
| 110 | + ); | |
| 111 | + }//end get_settings_sections | |
| 116 | 112 | |
| 117 | - /** | |
| 118 | - * Returns all the settings fields | |
| 119 | - * | |
| 120 | - * @return array settings fields | |
| 121 | - */ | |
| 122 | - public function get_settings_fields() | |
| 123 | - { | |
| 124 | - $general_settings = get_option('cbxgooglemap_general', []); | |
| 113 | + /** | |
| 114 | + * Returns all the settings fields | |
| 115 | + * | |
| 116 | + * @return array settings fields | |
| 117 | + */ | |
| 118 | + public function get_settings_fields() { | |
| 119 | + $general_settings = get_option( 'cbxgooglemap_general', [] ); | |
| 125 | 120 | |
| 126 | - $tools_delete_table_html = '<div id="setting_resetinfo">'.esc_html__('Loading ...', 'cbxgooglemap').'</div>'; | |
| 121 | + $tools_delete_table_html = '<div id="setting_resetinfo">' . esc_html__( 'Loading ...', 'cbxgooglemap' ) . '</div>'; | |
| 127 | 122 | |
| 128 | - $settings_builtin_fields = [ | |
| 129 | - 'cbxgooglemap_general' => [ | |
| 130 | - 'general_heading' => [ | |
| 131 | - 'name' => 'general_heading', | |
| 132 | - 'label' => esc_html__('Default Config', 'cbxgooglemap'), | |
| 133 | - 'type' => 'heading', | |
| 134 | - 'default' => '', | |
| 135 | - ], | |
| 136 | - 'mapsource' => [ | |
| 137 | - 'name' => 'mapsource', | |
| 138 | - 'label' => esc_html__('Map Source', 'cbxgooglemap'), | |
| 139 | - 'type' => 'radio', | |
| 140 | - 'default' => 1, | |
| 141 | - 'options' => [ | |
| 142 | - 0 => esc_html__('Openstreet Map(leafletjs)', 'cbxgooglemap'), | |
| 143 | - 1 => esc_html__('Google Map', 'cbxgooglemap') | |
| 144 | - ], | |
| 145 | - 'inline' => 1, | |
| 146 | - 'sanitize_callback' => 'absint' | |
| 147 | - ], | |
| 148 | - 'apikey' => [ | |
| 149 | - 'name' => 'apikey', | |
| 150 | - 'label' => esc_html__('Api Key', 'cbxgooglemap'), | |
| 151 | - 'desc' => esc_html__('Google map api key', 'cbxgooglemap'), | |
| 152 | - 'type' => 'text' | |
| 123 | + $settings_builtin_fields = [ | |
| 124 | + 'cbxgooglemap_general' => [ | |
| 125 | + 'general_heading' => [ | |
| 126 | + 'name' => 'general_heading', | |
| 127 | + 'label' => esc_html__( 'Default Config', 'cbxgooglemap' ), | |
| 128 | + 'type' => 'heading', | |
| 129 | + 'default' => '', | |
| 130 | + ], | |
| 131 | + 'mapsource' => [ | |
| 132 | + 'name' => 'mapsource', | |
| 133 | + 'label' => esc_html__( 'Map Source', 'cbxgooglemap' ), | |
| 134 | + 'type' => 'radio', | |
| 135 | + 'default' => 1, | |
| 136 | + 'options' => [ | |
| 137 | + 0 => esc_html__( 'Openstreet Map(leafletjs)', 'cbxgooglemap' ), | |
| 138 | + 1 => esc_html__( 'Google Map', 'cbxgooglemap' ) | |
| 139 | + ], | |
| 140 | + 'inline' => 1, | |
| 141 | + 'sanitize_callback' => 'absint' | |
| 142 | + ], | |
| 143 | + 'apikey' => [ | |
| 144 | + 'name' => 'apikey', | |
| 145 | + 'label' => esc_html__( 'Api Key', 'cbxgooglemap' ), | |
| 146 | + 'desc' => esc_html__( 'Google map api key', 'cbxgooglemap' ), | |
| 147 | + 'type' => 'text' | |
| 153 | 148 | |
| 154 | - ], | |
| 155 | - 'maptype' => [ | |
| 156 | - 'name' => 'maptype', | |
| 157 | - 'label' => esc_html__('Map Type', 'cbxgooglemap'), | |
| 158 | - 'type' => 'select', | |
| 159 | - 'default' => 'roadmap', | |
| 160 | - 'options' => [ | |
| 161 | - 'roadmap' => esc_html__('Road Map', 'cbxgooglemap'), | |
| 162 | - 'satellite' => esc_html__('Satellite Map', 'cbxgooglemap'), | |
| 163 | - 'hybrid' => esc_html__('Hybrid Map', 'cbxgooglemap'), | |
| 164 | - 'terrain' => esc_html__('Terrain Map', 'cbxgooglemap'), | |
| 165 | - ], | |
| 166 | - 'desc' => esc_html__('Google Map only', 'cbxgooglemap'), | |
| 167 | - 'sanitize_callback' => 'sanitize_text_field' | |
| 168 | - ], | |
| 169 | - 'zoom' => [ | |
| 170 | - 'name' => 'zoom', | |
| 171 | - 'label' => esc_html__('Zoom Level', 'cbxgooglemap'), | |
| 172 | - 'desc' => esc_html__('Default Zoom Level', 'cbxgooglemap'), | |
| 173 | - 'type' => 'number', | |
| 174 | - 'step' => 1, | |
| 175 | - 'default' => 8, | |
| 176 | - 'sanitize_callback' => 'absint' | |
| 149 | + ], | |
| 150 | + 'maptype' => [ | |
| 151 | + 'name' => 'maptype', | |
| 152 | + 'label' => esc_html__( 'Map Type', 'cbxgooglemap' ), | |
| 153 | + 'type' => 'select', | |
| 154 | + 'default' => 'roadmap', | |
| 155 | + 'options' => [ | |
| 156 | + 'roadmap' => esc_html__( 'Road Map', 'cbxgooglemap' ), | |
| 157 | + 'satellite' => esc_html__( 'Satellite Map', 'cbxgooglemap' ), | |
| 158 | + 'hybrid' => esc_html__( 'Hybrid Map', 'cbxgooglemap' ), | |
| 159 | + 'terrain' => esc_html__( 'Terrain Map', 'cbxgooglemap' ), | |
| 160 | + ], | |
| 161 | + 'desc' => esc_html__( 'Google Map only', 'cbxgooglemap' ), | |
| 162 | + 'sanitize_callback' => 'sanitize_text_field' | |
| 163 | + ], | |
| 164 | + 'zoom' => [ | |
| 165 | + 'name' => 'zoom', | |
| 166 | + 'label' => esc_html__( 'Zoom Level', 'cbxgooglemap' ), | |
| 167 | + 'desc' => esc_html__( 'Default Zoom Level', 'cbxgooglemap' ), | |
| 168 | + 'type' => 'number', | |
| 169 | + 'step' => 1, | |
| 170 | + 'default' => 8, | |
| 171 | + 'sanitize_callback' => 'absint' | |
| 177 | 172 | |
| 178 | - ], | |
| 179 | - 'width' => [ | |
| 180 | - 'name' => 'with', | |
| 181 | - 'label' => esc_html__('Width', 'cbxgooglemap'), | |
| 182 | - 'desc' => esc_html__('Default is 100% to make the map responsive, if you want any fixed width then don\'t put, % or just put numeric value, don\'t px with numeric value', 'cbxgooglemap'), | |
| 183 | - 'type' => 'text', | |
| 184 | - 'default' => '100%', | |
| 173 | + ], | |
| 174 | + 'width' => [ | |
| 175 | + 'name' => 'with', | |
| 176 | + 'label' => esc_html__( 'Width', 'cbxgooglemap' ), | |
| 177 | + 'desc' => esc_html__( 'Default is 100% to make the map responsive, if you want any fixed width then don\'t put, % or just put numeric value, don\'t px with numeric value', | |
| 178 | + 'cbxgooglemap' ), | |
| 179 | + 'type' => 'text', | |
| 180 | + 'default' => '100%', | |
| 185 | 181 | |
| 186 | - ], | |
| 187 | - 'height' => [ | |
| 188 | - 'name' => 'height', | |
| 189 | - 'label' => esc_html__('Height', 'cbxgooglemap'), | |
| 190 | - 'desc' => esc_html__('Default height 300 as px, put any numeric value.', 'cbxgooglemap'), | |
| 191 | - 'type' => 'number', | |
| 192 | - 'default' => '300', | |
| 193 | - 'sanitize_callback' => 'floatval' | |
| 194 | - ], | |
| 195 | - 'scrollwheel' => [ | |
| 196 | - 'name' => 'scrollwheel', | |
| 197 | - 'label' => esc_html__('Mouse Scroll Wheel', 'cbxgooglemap'), | |
| 198 | - 'desc' => esc_html__('Enable/disable mouse scroll whell', 'cbxgooglemap'), | |
| 199 | - 'type' => 'radio', | |
| 200 | - 'default' => 1, | |
| 201 | - 'options' => [ | |
| 202 | - '0' => esc_html__('Disable', 'cbxgooglemap'), | |
| 203 | - '1' => esc_html__('Enable', 'cbxgooglemap') | |
| 204 | - ], | |
| 205 | - 'inline' => 1, | |
| 206 | - 'sanitize_callback' => 'absint' | |
| 207 | - ], | |
| 208 | - 'showinfo' => [ | |
| 209 | - 'name' => 'showinfo', | |
| 210 | - 'label' => esc_html__('Show Info window', 'cbxgooglemap'), | |
| 211 | - 'desc' => esc_html__('Show information on click of marker', 'cbxgooglemap'), | |
| 212 | - 'type' => 'radio', | |
| 213 | - 'default' => 1, | |
| 214 | - 'options' => [ | |
| 215 | - '0' => esc_html__('Disable', 'cbxgooglemap'), | |
| 216 | - '1' => esc_html__('Enable', 'cbxgooglemap') | |
| 217 | - ], | |
| 218 | - 'inline' => 1, | |
| 219 | - 'sanitize_callback' => 'absint' | |
| 220 | - ], | |
| 221 | - 'infow_open' => [ | |
| 222 | - 'name' => 'infow_open', | |
| 223 | - 'label' => esc_html__('Info/Popup Window', 'cbxgooglemap'), | |
| 224 | - 'type' => 'radio', | |
| 225 | - 'default' => 1, | |
| 226 | - 'options' => [ | |
| 227 | - '0' => esc_html__('On Click', 'cbxgooglemap'), | |
| 228 | - '1' => esc_html__('Open(Default)', 'cbxgooglemap'), | |
| 229 | - ], | |
| 230 | - 'inline' => 1, | |
| 231 | - 'sanitize_callback' => 'absint' | |
| 232 | - ], | |
| 233 | - 'mapicon' => [ | |
| 234 | - 'name' => 'mapicon', | |
| 235 | - 'label' => esc_html__('Map Icon', 'cbxgooglemap'), | |
| 236 | - 'type' => 'file', | |
| 237 | - 'default' => '' | |
| 238 | - ], | |
| 239 | - 'hide_leaflet' => [ | |
| 240 | - 'name' => 'hide_leaflet', | |
| 241 | - 'label' => esc_html__('Hide Leaflet Branding', 'cbxgooglemap'), | |
| 242 | - 'type' => 'radio', | |
| 243 | - 'default' => 0, | |
| 244 | - 'options' => [ | |
| 245 | - 0 => esc_html__('Show/Default', 'cbxgooglemap'), | |
| 246 | - 1 => esc_html__('Hide', 'cbxgooglemap'), | |
| 247 | - ], | |
| 248 | - 'inline' => 1, | |
| 249 | - 'sanitize_callback' => 'absint' | |
| 250 | - ], | |
| 182 | + ], | |
| 183 | + 'height' => [ | |
| 184 | + 'name' => 'height', | |
| 185 | + 'label' => esc_html__( 'Height', 'cbxgooglemap' ), | |
| 186 | + 'desc' => esc_html__( 'Default height 300 as px, put any numeric value.', 'cbxgooglemap' ), | |
| 187 | + 'type' => 'number', | |
| 188 | + 'default' => '300', | |
| 189 | + 'sanitize_callback' => 'floatval' | |
| 190 | + ], | |
| 191 | + 'scrollwheel' => [ | |
| 192 | + 'name' => 'scrollwheel', | |
| 193 | + 'label' => esc_html__( 'Mouse Scroll Wheel', 'cbxgooglemap' ), | |
| 194 | + 'desc' => esc_html__( 'Enable/disable mouse scroll whell', 'cbxgooglemap' ), | |
| 195 | + 'type' => 'radio', | |
| 196 | + 'default' => 1, | |
| 197 | + 'options' => [ | |
| 198 | + '0' => esc_html__( 'Disable', 'cbxgooglemap' ), | |
| 199 | + '1' => esc_html__( 'Enable', 'cbxgooglemap' ) | |
| 200 | + ], | |
| 201 | + 'inline' => 1, | |
| 202 | + 'sanitize_callback' => 'absint' | |
| 203 | + ], | |
| 204 | + 'showinfo' => [ | |
| 205 | + 'name' => 'showinfo', | |
| 206 | + 'label' => esc_html__( 'Show Info window', 'cbxgooglemap' ), | |
| 207 | + 'desc' => esc_html__( 'Show information on click of marker', 'cbxgooglemap' ), | |
| 208 | + 'type' => 'radio', | |
| 209 | + 'default' => 1, | |
| 210 | + 'options' => [ | |
| 211 | + '0' => esc_html__( 'Disable', 'cbxgooglemap' ), | |
| 212 | + '1' => esc_html__( 'Enable', 'cbxgooglemap' ) | |
| 213 | + ], | |
| 214 | + 'inline' => 1, | |
| 215 | + 'sanitize_callback' => 'absint' | |
| 216 | + ], | |
| 217 | + 'infow_open' => [ | |
| 218 | + 'name' => 'infow_open', | |
| 219 | + 'label' => esc_html__( 'Info/Popup Window', 'cbxgooglemap' ), | |
| 220 | + 'type' => 'radio', | |
| 221 | + 'default' => 1, | |
| 222 | + 'options' => [ | |
| 223 | + '0' => esc_html__( 'On Click', 'cbxgooglemap' ), | |
| 224 | + '1' => esc_html__( 'Open(Default)', 'cbxgooglemap' ), | |
| 225 | + ], | |
| 226 | + 'inline' => 1, | |
| 227 | + 'sanitize_callback' => 'absint' | |
| 228 | + ], | |
| 229 | + 'mapicon' => [ | |
| 230 | + 'name' => 'mapicon', | |
| 231 | + 'label' => esc_html__( 'Map Icon', 'cbxgooglemap' ), | |
| 232 | + 'type' => 'file', | |
| 233 | + 'default' => '' | |
| 234 | + ], | |
| 235 | + 'hide_leaflet' => [ | |
| 236 | + 'name' => 'hide_leaflet', | |
| 237 | + 'label' => esc_html__( 'Hide Leaflet Branding', 'cbxgooglemap' ), | |
| 238 | + 'type' => 'radio', | |
| 239 | + 'default' => 0, | |
| 240 | + 'options' => [ | |
| 241 | + 0 => esc_html__( 'Show/Default', 'cbxgooglemap' ), | |
| 242 | + 1 => esc_html__( 'Hide', 'cbxgooglemap' ), | |
| 243 | + ], | |
| 244 | + 'inline' => 1, | |
| 245 | + 'sanitize_callback' => 'absint' | |
| 246 | + ], | |
| 251 | 247 | |
| 252 | - ], | |
| 253 | - 'cbxgooglemap_demo' => [ | |
| 254 | - 'demo_heading' => [ | |
| 255 | - 'name' => 'demo_heading', | |
| 256 | - 'label' => esc_html__('Demo & Shortcodes', 'cbxgooglemap'), | |
| 257 | - 'type' => 'heading', | |
| 258 | - 'default' => '', | |
| 259 | - ], | |
| 260 | - 'shortcode_demo' => [ | |
| 261 | - 'name' => 'shortcode_demo', | |
| 262 | - 'label' => esc_html__('Shortcode & Demo', 'cbxgooglemap'), | |
| 263 | - 'desc' => esc_html__('Shortcode and demo based on default setting, please save once to check change.', 'cbxgooglemap'), | |
| 264 | - 'type' => 'shortcode', | |
| 265 | - 'class' => 'cbcurrencyconverter_demo_copy', | |
| 266 | - 'default' => CBXGooglemapHelper::shortcode_builder($general_settings), | |
| 267 | - 'sanitize_callback' => 'sanitize_text_field' | |
| 268 | - ] | |
| 269 | - ], | |
| 270 | - 'cbxgooglemap_tools' => [ | |
| 271 | - 'tools_heading' => [ | |
| 272 | - 'name' => 'tools_heading', | |
| 273 | - 'label' => esc_html__('Tools Settings', 'cbxgooglemap'), | |
| 274 | - 'type' => 'heading', | |
| 275 | - 'default' => '', | |
| 276 | - ], | |
| 277 | - 'delete_global_config' => [ | |
| 278 | - 'name' => 'delete_global_config', | |
| 279 | - 'label' => esc_html__('On Uninstall delete plugin data', 'cbxgooglemap'), | |
| 280 | - 'desc' => '<p>'.esc_html__('Delete Global Config data(options/plugin settings), custom table(s), files/folders, all map custom post type created by this plugin on uninstall. Please note that this process can not be undone and it is recommended to keep full database and files backup before doing this.', 'cbxgooglemap').'</p>', | |
| 281 | - 'type' => 'radio', | |
| 282 | - 'options' => [ | |
| 283 | - 'yes' => esc_html__('Yes', 'cbxgooglemap'), | |
| 284 | - 'no' => esc_html__('No', 'cbxgooglemap'), | |
| 285 | - ], | |
| 286 | - 'default' => 'no', | |
| 287 | - ], | |
| 288 | - 'reset_data' => [ | |
| 289 | - 'name' => 'reset_data', | |
| 290 | - 'label' => esc_html__('Reset all section', 'cbxgooglemap'), | |
| 291 | - 'desc' => $tools_delete_table_html.'<p>'.esc_html__('This will reset all option/section created by this plugin.', | |
| 292 | - 'cbxgooglemap').'<a data-busy="0" class="button secondary ml-20" id="reset_data_trigger" href="#">'.esc_html__('Reset Sections', | |
| 293 | - 'cbxgooglemap').'</a></p>', | |
| 294 | - 'type' => 'html', | |
| 295 | - 'default' => 'off' | |
| 296 | - ], | |
| 297 | - ], | |
| 298 | - ]; | |
| 248 | + ], | |
| 249 | + 'cbxgooglemap_demo' => [ | |
| 250 | + 'demo_heading' => [ | |
| 251 | + 'name' => 'demo_heading', | |
| 252 | + 'label' => esc_html__( 'Demo & Shortcodes', 'cbxgooglemap' ), | |
| 253 | + 'type' => 'heading', | |
| 254 | + 'default' => '', | |
| 255 | + ], | |
| 256 | + 'shortcode_demo' => [ | |
| 257 | + 'name' => 'shortcode_demo', | |
| 258 | + 'label' => esc_html__( 'Shortcode & Demo', 'cbxgooglemap' ), | |
| 259 | + 'desc' => esc_html__( 'Shortcode and demo based on default setting, please save once to check change.', 'cbxgooglemap' ), | |
| 260 | + 'type' => 'shortcode', | |
| 261 | + 'class' => 'cbcurrencyconverter_demo_copy', | |
| 262 | + 'default' => CBXGooglemapHelper::shortcode_builder( $general_settings ), | |
| 263 | + 'sanitize_callback' => 'sanitize_text_field' | |
| 264 | + ] | |
| 265 | + ], | |
| 266 | + 'cbxgooglemap_tools' => [ | |
| 267 | + 'tools_heading' => [ | |
| 268 | + 'name' => 'tools_heading', | |
| 269 | + 'label' => esc_html__( 'Tools Settings', 'cbxgooglemap' ), | |
| 270 | + 'type' => 'heading', | |
| 271 | + 'default' => '', | |
| 272 | + ], | |
| 273 | + 'delete_global_config' => [ | |
| 274 | + 'name' => 'delete_global_config', | |
| 275 | + 'label' => esc_html__( 'On Uninstall delete plugin data', 'cbxgooglemap' ), | |
| 276 | + 'desc' => '<p>' . esc_html__( 'Delete Global Config data(options/plugin settings), custom table(s), files/folders, all map custom post type created by this plugin on uninstall. Please note that this process can not be undone and it is recommended to keep full database and files backup before doing this.', | |
| 277 | + 'cbxgooglemap' ) . '</p>', | |
| 278 | + 'type' => 'radio', | |
| 279 | + 'options' => [ | |
| 280 | + 'yes' => esc_html__( 'Yes', 'cbxgooglemap' ), | |
| 281 | + 'no' => esc_html__( 'No', 'cbxgooglemap' ), | |
| 282 | + ], | |
| 283 | + 'default' => 'no', | |
| 284 | + ], | |
| 285 | + 'reset_data' => [ | |
| 286 | + 'name' => 'reset_data', | |
| 287 | + 'label' => esc_html__( 'Reset all section', 'cbxgooglemap' ), | |
| 288 | + 'desc' => $tools_delete_table_html . '<p>' . esc_html__( 'This will reset all option/section created by this plugin.', | |
| 289 | + 'cbxgooglemap' ) . '<a data-busy="0" class="button secondary ml-20" id="reset_data_trigger" href="#">' . esc_html__( 'Reset Sections', | |
| 290 | + 'cbxgooglemap' ) . '</a></p>', | |
| 291 | + 'type' => 'html', | |
| 292 | + 'default' => 'off' | |
| 293 | + ], | |
| 294 | + ], | |
| 295 | + ]; | |
| 299 | 296 | |
| 300 | 297 | |
| 301 | - $settings_fields = []; //final setting array that will be passed to different filters | |
| 302 | - $sections = $this->get_settings_sections(); | |
| 298 | + $settings_fields = []; //final setting array that will be passed to different filters | |
| 299 | + $sections = $this->get_settings_sections(); | |
| 303 | 300 | |
| 304 | - foreach ($sections as $section) { | |
| 305 | - if ( ! isset($settings_builtin_fields[$section['id']])) { | |
| 306 | - $settings_builtin_fields[$section['id']] = []; | |
| 307 | - } | |
| 308 | - } | |
| 301 | + foreach ( $sections as $section ) { | |
| 302 | + if ( ! isset( $settings_builtin_fields[ $section['id'] ] ) ) { | |
| 303 | + $settings_builtin_fields[ $section['id'] ] = []; | |
| 304 | + } | |
| 305 | + } | |
| 309 | 306 | |
| 310 | 307 | |
| 311 | - foreach ($sections as $section) { | |
| 312 | - $settings_fields[$section['id']] = apply_filters('cbxgooglemap_global_'.$section['id'].'_fields', $settings_builtin_fields[$section['id']]); | |
| 313 | - } | |
| 308 | + foreach ( $sections as $section ) { | |
| 309 | + $settings_fields[ $section['id'] ] = apply_filters( 'cbxgooglemap_global_' . $section['id'] . '_fields', $settings_builtin_fields[ $section['id'] ] ); | |
| 310 | + } | |
| 314 | 311 | |
| 315 | - return apply_filters('cbxgooglemap_global_fields', $settings_fields); | |
| 316 | - }//end get_settings_fields | |
| 312 | + return apply_filters( 'cbxgooglemap_global_fields', $settings_fields ); | |
| 313 | + }//end get_settings_fields | |
| 317 | 314 | |
| 318 | - /** | |
| 319 | - * Register Custom Post Type cbxgooglemap | |
| 320 | - * | |
| 321 | - * @since 3.7.0 | |
| 322 | - */ | |
| 323 | - public function create_post_type() | |
| 324 | - { | |
| 325 | - CBXGooglemapHelper::create_googlemap_post_type(); | |
| 315 | + /** | |
| 316 | + * Register Custom Post Type cbxgooglemap | |
| 317 | + * | |
| 318 | + * @since 3.7.0 | |
| 319 | + */ | |
| 320 | + public function create_post_type() { | |
| 321 | + CBXGooglemapHelper::create_googlemap_post_type(); | |
| 326 | 322 | |
| 327 | - // Check the option we set on activation. | |
| 328 | - if (get_option('cbxgooglemap_flush_rewrite_rules') === 'true') { | |
| 329 | - flush_rewrite_rules(); | |
| 330 | - delete_option('cbxgooglemap_flush_rewrite_rules'); | |
| 331 | - } | |
| 332 | - }//end create_post_type | |
| 323 | + // Check the option we set on activation. | |
| 324 | + if ( get_option( 'cbxgooglemap_flush_rewrite_rules' ) === 'true' ) { | |
| 325 | + flush_rewrite_rules(); | |
| 326 | + delete_option( 'cbxgooglemap_flush_rewrite_rules' ); | |
| 327 | + } | |
| 328 | + }//end create_post_type | |
| 333 | 329 | |
| 334 | 330 | |
| 335 | - /** | |
| 336 | - * Show menu page | |
| 337 | - */ | |
| 338 | - public function menu_pages() | |
| 339 | - { | |
| 340 | - //setting page | |
| 341 | - $setting_page_hook = add_submenu_page('edit.php?post_type=cbxgooglemap', esc_html__('CBX Map: Settings', 'cbxgooglemap'), esc_html__('Settings', 'cbxgooglemap'), 'manage_options', 'cbxgooglemap_settings', [ | |
| 342 | - $this, | |
| 343 | - 'menu_page_settings' | |
| 344 | - ]); | |
| 331 | + /** | |
| 332 | + * Show menu page | |
| 333 | + */ | |
| 334 | + public function menu_pages() { | |
| 335 | + //setting page | |
| 336 | + $setting_page_hook = add_submenu_page( 'edit.php?post_type=cbxgooglemap', esc_html__( 'CBX Map: Settings', 'cbxgooglemap' ), esc_html__( 'Settings', 'cbxgooglemap' ), 'manage_options', | |
| 337 | + 'cbxgooglemap_settings', [ | |
| 338 | + $this, | |
| 339 | + 'menu_page_settings' | |
| 340 | + ] ); | |
| 345 | 341 | |
| 346 | - $doc_page_hook = add_submenu_page('edit.php?post_type=cbxgooglemap', esc_html__('CBX Map Helps & Updates', 'cbxgooglemap'), esc_html__('Helps & Updates', 'cbxgooglemap'), 'manage_options', 'cbxgooglemap_support', [ | |
| 347 | - $this, | |
| 348 | - 'menu_page_docs' | |
| 349 | - ]); | |
| 350 | - }//end menu_pages | |
| 342 | + $doc_page_hook = add_submenu_page( 'edit.php?post_type=cbxgooglemap', esc_html__( 'CBX Map Helps & Updates', 'cbxgooglemap' ), esc_html__( 'Helps & Updates', 'cbxgooglemap' ), | |
| 343 | + 'manage_options', 'cbxgooglemap_support', [ | |
| 344 | + $this, | |
| 345 | + 'menu_page_docs' | |
| 346 | + ] ); | |
| 347 | + }//end menu_pages | |
| 351 | 348 | |
| 352 | - /** | |
| 353 | - * Show cbxeventz Setting page | |
| 354 | - */ | |
| 355 | - public function menu_page_settings() | |
| 356 | - { | |
| 357 | - //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped | |
| 358 | - echo cbxgooglemap_get_template_html('admin/settings.php', | |
| 359 | - [ | |
| 360 | - 'ref' => $this, | |
| 361 | - 'settings' => $this->settings | |
| 362 | - ] | |
| 363 | - ); | |
| 364 | - }//end menu_page_settings | |
| 349 | + /** | |
| 350 | + * Show cbxeventz Setting page | |
| 351 | + */ | |
| 352 | + public function menu_page_settings() { | |
| 353 | + //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped | |
| 354 | + echo cbxgooglemap_get_template_html( 'admin/settings.php', | |
| 355 | + [ | |
| 356 | + 'ref' => $this, | |
| 357 | + 'settings' => $this->settings | |
| 358 | + ] | |
| 359 | + ); | |
| 360 | + }//end menu_page_settings | |
| 365 | 361 | |
| 366 | - /** | |
| 367 | - * Render the help & support page for this plugin. | |
| 368 | - * | |
| 369 | - * @since 1.0.0 | |
| 370 | - */ | |
| 371 | - public function menu_page_docs() | |
| 372 | - { | |
| 373 | - echo cbxgooglemap_get_template_html('admin/support.php');//phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped | |
| 374 | - }//end method menu_page_docs | |
| 362 | + /** | |
| 363 | + * Render the help & support page for this plugin. | |
| 364 | + * | |
| 365 | + * @since 1.0.0 | |
| 366 | + */ | |
| 367 | + public function menu_page_docs() { | |
| 368 | + echo cbxgooglemap_get_template_html( 'admin/support.php' );//phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped | |
| 369 | + }//end method menu_page_docs | |
| 375 | 370 | |
| 376 | - /** | |
| 377 | - * Add metabox for custom post type cbxfeedbackform && cbxfeedbackbtn | |
| 378 | - * | |
| 379 | - * @since 1.0.0 | |
| 380 | - */ | |
| 381 | - public function add_meta_boxes() | |
| 382 | - { | |
| 383 | - add_meta_box('cbxgooglemap_metabox', esc_html__('Map Parameters', 'cbxgooglemap'), [ | |
| 384 | - $this, | |
| 385 | - 'parameter_metabox_display' | |
| 386 | - ], 'cbxgooglemap', 'normal', 'high'); | |
| 371 | + /** | |
| 372 | + * Add metabox for custom post type cbxfeedbackform && cbxfeedbackbtn | |
| 373 | + * | |
| 374 | + * @since 1.0.0 | |
| 375 | + */ | |
| 376 | + public function add_meta_boxes() { | |
| 377 | + add_meta_box( 'cbxgooglemap_metabox', esc_html__( 'Map Parameters', 'cbxgooglemap' ), [ | |
| 378 | + $this, | |
| 379 | + 'parameter_metabox_display' | |
| 380 | + ], 'cbxgooglemap', 'normal', 'high' ); | |
| 387 | 381 | |
| 388 | 382 | |
| 389 | - add_meta_box('cbxgooglemap_shortcode', esc_html__('Shortcode', 'cbxgooglemap'), [ | |
| 390 | - $this, | |
| 391 | - 'shortcode_metabox_display' | |
| 392 | - ], 'cbxgooglemap', 'side', 'low'); | |
| 393 | - }//end add_meta_boxes | |
| 383 | + add_meta_box( 'cbxgooglemap_shortcode', esc_html__( 'Shortcode', 'cbxgooglemap' ), [ | |
| 384 | + $this, | |
| 385 | + 'shortcode_metabox_display' | |
| 386 | + ], 'cbxgooglemap', 'side', 'low' ); | |
| 387 | + }//end add_meta_boxes | |
| 394 | 388 | |
| 395 | - /** | |
| 396 | - * Show Shortcode display metabox | |
| 397 | - * | |
| 398 | - * @param $post | |
| 399 | - */ | |
| 400 | - public function shortcode_metabox_display($post) | |
| 401 | - { | |
| 402 | - if (isset($post->ID) && $post->ID > 0) { | |
| 403 | - $post_id = $post->ID; | |
| 404 | - $post_type = $post->post_type; | |
| 389 | + /** | |
| 390 | + * Show Shortcode display metabox | |
| 391 | + * | |
| 392 | + * @param $post | |
| 393 | + */ | |
| 394 | + public function shortcode_metabox_display( $post ) { | |
| 395 | + if ( isset( $post->ID ) && $post->ID > 0 ) { | |
| 396 | + $post_id = $post->ID; | |
| 397 | + $post_type = $post->post_type; | |
| 405 | 398 | |
| 406 | - echo cbxgooglemap_get_template_html('admin/metabox_shortcode.php', [//phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped | |
| 407 | - 'post_id' => $post_id, | |
| 408 | - 'post_type' => $post_type | |
| 409 | - ]); | |
| 410 | - } | |
| 411 | - }//end shortcode_metabox_display | |
| 399 | + echo cbxgooglemap_get_template_html( 'admin/metabox_shortcode.php', [//phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped | |
| 400 | + 'post_id' => $post_id, | |
| 401 | + 'post_type' => $post_type | |
| 402 | + ] ); | |
| 403 | + } | |
| 404 | + }//end shortcode_metabox_display | |
| 412 | 405 | |
| 413 | - /** | |
| 414 | - * Render metabox | |
| 415 | - * | |
| 416 | - * @param $post | |
| 417 | - * | |
| 418 | - * since v1.0.0 | |
| 419 | - */ | |
| 420 | - public function parameter_metabox_display($post) | |
| 421 | - { | |
| 422 | - global $post; | |
| 423 | - $post_type = $post->post_type; | |
| 406 | + /** | |
| 407 | + * Render metabox | |
| 408 | + * | |
| 409 | + * @param $post | |
| 410 | + * | |
| 411 | + * since v1.0.0 | |
| 412 | + */ | |
| 413 | + public function parameter_metabox_display( $post ) { | |
| 414 | + global $post; | |
| 415 | + $post_type = $post->post_type; | |
| 424 | 416 | |
| 425 | 417 | |
| 426 | - $meta_fields = CBXGooglemapMetaHelper::cbxgooglemap_meta_fields(); | |
| 418 | + $meta_fields = CBXGooglemapMetaHelper::cbxgooglemap_meta_fields(); | |
| 427 | 419 | |
| 428 | - $combined_field = '_'.$post_type.'_combined'; //field name for non sortable fields | |
| 429 | - $meta_prefix = '_'.$post_type; //field prefix for sortable fields | |
| 420 | + $combined_field = '_' . $post_type . '_combined'; //field name for non sortable fields | |
| 421 | + $meta_prefix = '_' . $post_type; //field prefix for sortable fields | |
| 430 | 422 | |
| 431 | 423 | |
| 432 | - CBXGooglemapMetaHelper::render_meta_fields($post, $meta_fields, $combined_field, $meta_prefix, true); // | |
| 433 | - }//end parameter_metabox_display | |
| 424 | + CBXGooglemapMetaHelper::render_meta_fields( $post, $meta_fields, $combined_field, $meta_prefix, true ); // | |
| 425 | + }//end parameter_metabox_display | |
| 434 | 426 | |
| 435 | - /** | |
| 436 | - * Save meta box for cbxeventz | |
| 437 | - * | |
| 438 | - * @param $post_id | |
| 439 | - */ | |
| 440 | - public function metabox_save($post_id, $post, $update) | |
| 441 | - { | |
| 427 | + /** | |
| 428 | + * Save meta box for cbxeventz | |
| 429 | + * | |
| 430 | + * @param $post_id | |
| 431 | + */ | |
| 432 | + public function metabox_save( $post_id, $post, $update ) { | |
| 442 | 433 | |
| 443 | - $post_type = $post->post_type; | |
| 434 | + $post_type = $post->post_type; | |
| 444 | 435 | |
| 445 | - // Check if our nonce is set. | |
| 446 | - if ( ! isset($_POST['cbxmetahelper_'.$post_type.'_meta_box_nonce'])) { | |
| 447 | - return $post_id; | |
| 448 | - } | |
| 436 | + // Check if our nonce is set. | |
| 437 | + if ( ! isset( $_POST[ 'cbxmetahelper_' . $post_type . '_meta_box_nonce' ] ) ) { | |
| 438 | + return $post_id; | |
| 439 | + } | |
| 449 | 440 | |
| 450 | - // Verify that the nonce is valid. | |
| 451 | - if ( ! wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['cbxmetahelper_'.$post_type.'_meta_box_nonce'])), 'cbxmetahelper_'.$post_type.'_meta_box')) { | |
| 452 | - return $post_id; | |
| 453 | - } | |
| 441 | + // Verify that the nonce is valid. | |
| 442 | + if ( ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST[ 'cbxmetahelper_' . $post_type . '_meta_box_nonce' ] ) ), 'cbxmetahelper_' . $post_type . '_meta_box' ) ) { | |
| 443 | + return $post_id; | |
| 444 | + } | |
| 454 | 445 | |
| 455 | - // If this is an autosave, our form has not been submitted, so we don't want to do anything. | |
| 456 | - if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { | |
| 457 | - return $post_id; | |
| 458 | - } | |
| 446 | + // If this is an autosave, our form has not been submitted, so we don't want to do anything. | |
| 447 | + if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { | |
| 448 | + return $post_id; | |
| 449 | + } | |
| 459 | 450 | |
| 460 | - // Check the user's permissions. | |
| 461 | - if (isset($_POST['post_type']) && $post_type == $_POST['post_type']) { | |
| 451 | + // Check the user's permissions. | |
| 452 | + if ( isset( $_POST['post_type'] ) && $post_type == $_POST['post_type'] ) { | |
| 462 | 453 | |
| 463 | - if ( ! current_user_can('edit_post', $post_id)) { | |
| 464 | - return $post_id; | |
| 465 | - } | |
| 466 | - } | |
| 454 | + if ( ! current_user_can( 'edit_post', $post_id ) ) { | |
| 455 | + return $post_id; | |
| 456 | + } | |
| 457 | + } | |
| 467 | 458 | |
| 468 | - $meta_fields = CBXGooglemapMetaHelper::cbxgooglemap_meta_fields($post_id); | |
| 459 | + $meta_fields = CBXGooglemapMetaHelper::cbxgooglemap_meta_fields( $post_id ); | |
| 469 | 460 | |
| 470 | 461 | |
| 471 | - $combined_field = '_'.$post_type.'_combined'; //field name for non sortable fields | |
| 472 | - $meta_prefix = '_'.$post_type; //field prefix for sortable fields | |
| 462 | + $combined_field = '_' . $post_type . '_combined'; //field name for non sortable fields | |
| 463 | + $meta_prefix = '_' . $post_type; //field prefix for sortable fields | |
| 473 | 464 | |
| 474 | - $meta_combined = get_post_meta($post_id, $combined_field, true); //meta fields not sortable | |
| 465 | + $meta_combined = get_post_meta( $post_id, $combined_field, true ); //meta fields not sortable | |
| 475 | 466 | |
| 476 | - $meta_combined = ! is_array($meta_combined) ? [] : $meta_combined; | |
| 467 | + $meta_combined = ! is_array( $meta_combined ) ? [] : $meta_combined; | |
| 477 | 468 | |
| 478 | 469 | |
| 479 | - $combined_arr = []; | |
| 480 | - foreach ($meta_fields as $section_id => $fields) { | |
| 481 | - foreach ($fields as $id => $field) { | |
| 470 | + $combined_arr = []; | |
| 471 | + foreach ( $meta_fields as $section_id => $fields ) { | |
| 472 | + foreach ( $fields as $id => $field ) { | |
| 482 | 473 | |
| 483 | - $field_type = $field['type']; | |
| 474 | + $field_type = $field['type']; | |
| 484 | 475 | |
| 485 | - $sanitize_callback = isset($field['sanitize_callback']) ? $field['sanitize_callback'] : null; | |
| 476 | + $sanitize_callback = isset( $field['sanitize_callback'] ) ? $field['sanitize_callback'] : null; | |
| 486 | 477 | |
| 487 | - if (isset($_POST[$meta_prefix.$id])) { | |
| 478 | + if ( isset( $_POST[ $meta_prefix . $id ] ) ) { | |
| 488 | 479 | |
| 489 | - if (isset($_POST[$meta_prefix.$id])) { | |
| 490 | - $updated_value = wp_unslash($_POST[$meta_prefix.$id]); | |
| 480 | + if ( isset( $_POST[ $meta_prefix . $id ] ) ) { | |
| 481 | + $updated_value = wp_unslash( $_POST[ $meta_prefix . $id ] );//phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | |
| 482 | + $updated_value = is_array( $updated_value ) ? cbxgooglemap_decode_entities_array( $updated_value ) : html_entity_decode( $updated_value ); | |
| 491 | 483 | |
| 492 | - if ($field_type == 'text') { | |
| 493 | - $updated_value = sanitize_text_field($updated_value); | |
| 494 | - } elseif ($field_type == 'textarea') { | |
| 495 | - $updated_value = sanitize_textarea_field($updated_value); | |
| 496 | - } else { | |
| 497 | - if ($sanitize_callback !== null && is_callable($sanitize_callback)) { | |
| 498 | - $updated_value = call_user_func($sanitize_callback, $updated_value); | |
| 499 | - } | |
| 500 | - else{ | |
| 501 | - $updated_value = sanitize_text_field($updated_value); | |
| 502 | - } | |
| 503 | - } | |
| 484 | + $sanitized = false; | |
| 504 | 485 | |
| 505 | - $is_sortable = isset($field['sortable']) ? $field['sortable'] : false; | |
| 486 | + if ( $sanitize_callback !== null && is_callable( $sanitize_callback ) ) { | |
| 487 | + $sanitized = true; | |
| 488 | + $updated_value = call_user_func( $sanitize_callback, $updated_value ); | |
| 489 | + } elseif ( $field_type == 'text' ) { | |
| 490 | + $sanitized = true; | |
| 491 | + $updated_value = sanitize_text_field( $updated_value ); | |
| 492 | + } elseif ( $field_type == 'textarea' ) { | |
| 493 | + $sanitized = true; | |
| 494 | + $updated_value = sanitize_textarea_field( $updated_value ); | |
| 495 | + } | |
| 506 | 496 | |
| 507 | - if ($is_sortable) { | |
| 508 | - $ret = update_post_meta($post_id, $meta_prefix.$id, $updated_value); //update the combined meta | |
| 509 | - } else { | |
| 510 | - //save as combined meta | |
| 511 | - $meta_combined[$meta_prefix.$id] = $updated_value; | |
| 512 | - } | |
| 513 | - } | |
| 497 | + if ( ! $sanitized ) { | |
| 498 | + $updated_value = wp_kses_post( $updated_value );//general sanitization | |
| 499 | + } | |
| 514 | 500 | |
| 515 | - } | |
| 501 | + $updated_value = apply_filters( 'cbxgooglemap_meta_sanitize_admin', $updated_value, $id, $field, $fields ); | |
| 516 | 502 | |
| 517 | - } | |
| 518 | - } | |
| 503 | + $is_sortable = isset( $field['sortable'] ) ? $field['sortable'] : false; | |
| 519 | 504 | |
| 520 | - update_post_meta($post_id, $combined_field, $meta_combined); //update the combined meta | |
| 505 | + if ( $is_sortable ) { | |
| 506 | + $ret = update_post_meta( $post_id, $meta_prefix . $id, $updated_value ); //update the combined meta | |
| 507 | + } else { | |
| 508 | + //save as combined meta | |
| 509 | + $meta_combined[ $meta_prefix . $id ] = $updated_value; | |
| 510 | + } | |
| 511 | + } | |
| 521 | 512 | |
| 522 | - do_action('cbxgooglemap_metabox_save', $post_id); | |
| 513 | + } | |
| 523 | 514 | |
| 524 | - }//end metabox_save | |
| 515 | + } | |
| 516 | + } | |
| 525 | 517 | |
| 526 | - /** | |
| 527 | - * Add or adjust col for cbxgooglemap post type | |
| 528 | - * | |
| 529 | - * @param $cbxpoll_columns | |
| 530 | - * | |
| 531 | - * @return array | |
| 532 | - * | |
| 533 | - */ | |
| 534 | - public function cbxgooglemap_add_new_columns($columns) | |
| 535 | - { | |
| 536 | - unset($columns['date']); | |
| 537 | - unset($columns['comments']); | |
| 518 | + update_post_meta( $post_id, $combined_field, $meta_combined ); //update the combined meta | |
| 538 | 519 | |
| 539 | - $columns['lat'] = esc_attr('Latitude', 'cbxgooglemap'); | |
| 540 | - $columns['lng'] = esc_attr('Longitude', 'cbxgooglemap'); | |
| 541 | - $columns['zoom'] = esc_attr('Zoom', 'cbxgooglemap'); | |
| 520 | + do_action( 'cbxgooglemap_metabox_save', $post_id ); | |
| 542 | 521 | |
| 543 | - //$columns['shortcode'] = esc_attr( 'Shortcode', 'cbxgooglemap' ); | |
| 522 | + }//end metabox_save | |
| 544 | 523 | |
| 545 | - return $columns; | |
| 546 | - }//end cbxgooglemap_add_new_columns | |
| 524 | + /** | |
| 525 | + * Add or adjust col for cbxgooglemap post type | |
| 526 | + * | |
| 527 | + * @param $cbxpoll_columns | |
| 528 | + * | |
| 529 | + * @return array | |
| 530 | + * | |
| 531 | + */ | |
| 532 | + public function cbxgooglemap_add_new_columns( $columns ) { | |
| 533 | + unset( $columns['date'] ); | |
| 534 | + unset( $columns['comments'] ); | |
| 547 | 535 | |
| 548 | - /** | |
| 549 | - * Add extra cols information for cbxgooglemap post type | |
| 550 | - * | |
| 551 | - * @param $column_name | |
| 552 | - * | |
| 553 | - * | |
| 554 | - * show data to poll table custom column | |
| 555 | - */ | |
| 556 | - public function cbxgooglemap_manage_columns($column_name) | |
| 557 | - { | |
| 558 | - global $wpdb, $post; | |
| 536 | + $columns['lat'] = esc_attr( 'Latitude', 'cbxgooglemap' ); | |
| 537 | + $columns['lng'] = esc_attr( 'Longitude', 'cbxgooglemap' ); | |
| 538 | + $columns['zoom'] = esc_attr( 'Zoom', 'cbxgooglemap' ); | |
| 559 | 539 | |
| 560 | - $post_id = intval($post->ID); | |
| 561 | - $post_type = $post->post_type; | |
| 540 | + //$columns['shortcode'] = esc_attr( 'Shortcode', 'cbxgooglemap' ); | |
| 562 | 541 | |
| 563 | - $combined_field = '_cbxgooglemap_combined'; //field name for non sortable fields | |
| 564 | - $meta_prefix = '_cbxgooglemap'; //field prefix for sortable fields | |
| 542 | + return $columns; | |
| 543 | + }//end cbxgooglemap_add_new_columns | |
| 565 | 544 | |
| 566 | - $meta_combined = get_post_meta($post_id, $combined_field, true); | |
| 545 | + /** | |
| 546 | + * Add extra cols information for cbxgooglemap post type | |
| 547 | + * | |
| 548 | + * @param $column_name | |
| 549 | + * | |
| 550 | + * | |
| 551 | + * show data to poll table custom column | |
| 552 | + */ | |
| 553 | + public function cbxgooglemap_manage_columns( $column_name ) { | |
| 554 | + global $wpdb, $post; | |
| 567 | 555 | |
| 568 | - $lat = get_post_meta($post_id, $meta_prefix.'lat', true); | |
| 569 | - $lat = ($lat !== false) ? $lat : ''; | |
| 556 | + $post_id = intval( $post->ID ); | |
| 557 | + $post_type = $post->post_type; | |
| 570 | 558 | |
| 571 | - $lng = get_post_meta($post_id, $meta_prefix.'lng', true); | |
| 572 | - $lng = ($lng !== false) ? $lng : ''; | |
| 559 | + $combined_field = '_cbxgooglemap_combined'; //field name for non sortable fields | |
| 560 | + $meta_prefix = '_cbxgooglemap'; //field prefix for sortable fields | |
| 573 | 561 | |
| 574 | - $zoom = (isset($meta_combined[$meta_prefix.'zoom']) && intval($meta_combined[$meta_prefix.'zoom']) > 0) ? intval($meta_combined[$meta_prefix.'zoom']) : ''; | |
| 562 | + $meta_combined = get_post_meta( $post_id, $combined_field, true ); | |
| 575 | 563 | |
| 564 | + $lat = get_post_meta( $post_id, $meta_prefix . 'lat', true ); | |
| 565 | + $lat = ( $lat !== false ) ? $lat : ''; | |
| 576 | 566 | |
| 577 | - switch ($column_name) { | |
| 578 | - /*case 'shortcode': | |
| 579 | - echo '<div class="cbxshortcode-wrap">'; | |
| 580 | - echo '<span data-clipboard-text=\'[cbxgooglemap id="' . absint( $post_id ) . '"]\' title="' . esc_html__( 'Click to clipboard', 'cbxgooglemap' ) . '" id="cbxgooglemapshortcode-' . absint( $post_id ) . '" class="cbxshortcode cbxshortcode-edit cbxshortcode-' . absint( $post_id ) . '">[cbxgooglemap id="' . absint( $post_id ) . '"]</span>'; | |
| 581 | - echo '<span class="cbxballon_ctp_btn cbxballon_ctp" aria-label="' . esc_html__( 'Click to copy', 'cbxgooglemap' ) . '" data-balloon-pos="up"><i></i></span>'; | |
| 582 | - echo '</div>'; | |
| 583 | - break;*/ | |
| 584 | - case 'lat': | |
| 585 | - echo esc_html($lat); | |
| 586 | - break; | |
| 587 | - case 'lng': | |
| 588 | - echo esc_html($lng); | |
| 589 | - break; | |
| 590 | - case 'zoom': | |
| 591 | - echo esc_html($zoom); | |
| 592 | - break; | |
| 593 | - default: | |
| 594 | - break; | |
| 595 | - } // end switch | |
| 596 | - }//end cbxgooglemap_manage_columns | |
| 567 | + $lng = get_post_meta( $post_id, $meta_prefix . 'lng', true ); | |
| 568 | + $lng = ( $lng !== false ) ? $lng : ''; | |
| 597 | 569 | |
| 598 | - /** | |
| 599 | - * Register the stylesheets for the admin area. | |
| 600 | - * | |
| 601 | - * @since 1.0.0 | |
| 602 | - */ | |
| 603 | - public function enqueue_styles($hook) | |
| 604 | - { | |
| 605 | - $current_page = isset($_GET['page']) ? sanitize_text_field(wp_unslash($_GET['page'])) : '';// phpcs:ignore WordPress.Security.NonceVerification.Recommended | |
| 606 | - $ver = $this->version; | |
| 607 | - $in_footer = [ | |
| 608 | - 'in_footer' => true, | |
| 609 | - ]; | |
| 570 | + $zoom = ( isset( $meta_combined[ $meta_prefix . 'zoom' ] ) && absint( $meta_combined[ $meta_prefix . 'zoom' ] ) > 0 ) ? absint( $meta_combined[ $meta_prefix . 'zoom' ] ) : ''; | |
| 610 | 571 | |
| 611 | - $vendor_url = CBXGOOGLEMAP_ROOT_URL.'assets/vendors/'; | |
| 612 | - //$css_url = CBXGOOGLEMAP_ROOT_URL . 'assets/css/'; | |
| 613 | - //$js_url = CBXGOOGLEMAP_ROOT_URL . 'assets/css/'; | |
| 614 | 572 | |
| 615 | - $css_url_part = CBXGOOGLEMAP_ROOT_URL.'assets/css/'; | |
| 616 | - $css_url_part_vendors = CBXGOOGLEMAP_ROOT_URL.'assets/vendors/'; | |
| 617 | - $js_url_part_vendors = CBXGOOGLEMAP_ROOT_URL.'assets/vendors/'; | |
| 573 | + switch ( $column_name ) { | |
| 574 | + /*case 'shortcode': | |
| 575 | + echo '<div class="cbxshortcode-wrap">'; | |
| 576 | + echo '<span data-clipboard-text=\'[cbxgooglemap id="' . absint( $post_id ) . '"]\' title="' . esc_html__( 'Click to clipboard', 'cbxgooglemap' ) . '" id="cbxgooglemapshortcode-' . absint( $post_id ) . '" class="cbxshortcode cbxshortcode-edit cbxshortcode-' . absint( $post_id ) . '">[cbxgooglemap id="' . absint( $post_id ) . '"]</span>'; | |
| 577 | + echo '<span class="cbxballon_ctp_btn cbxballon_ctp" aria-label="' . esc_html__( 'Click to copy', 'cbxgooglemap' ) . '" data-balloon-pos="up"><i></i></span>'; | |
| 578 | + echo '</div>'; | |
| 579 | + break;*/ | |
| 580 | + case 'lat': | |
| 581 | + echo esc_html( $lat ); | |
| 582 | + break; | |
| 583 | + case 'lng': | |
| 584 | + echo esc_html( $lng ); | |
| 585 | + break; | |
| 586 | + case 'zoom': | |
| 587 | + echo esc_html( $zoom ); | |
| 588 | + break; | |
| 589 | + default: | |
| 590 | + break; | |
| 591 | + } // end switch | |
| 592 | + }//end cbxgooglemap_manage_columns | |
| 618 | 593 | |
| 619 | - global $post_type, $post; | |
| 594 | + /** | |
| 595 | + * Register the stylesheets for the admin area. | |
| 596 | + * | |
| 597 | + * @since 1.0.0 | |
| 598 | + */ | |
| 599 | + public function enqueue_styles( $hook ) { | |
| 600 | + $current_page = isset( $_GET['page'] ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : '';// phpcs:ignore WordPress.Security.NonceVerification.Recommended | |
| 601 | + $ver = $this->version; | |
| 602 | + $in_footer = [ | |
| 603 | + 'in_footer' => true, | |
| 604 | + ]; | |
| 620 | 605 | |
| 621 | - $api_key = esc_attr($this->settings->get_option('apikey', 'cbxgooglemap_general', '')); | |
| 622 | - $map_source = absint($this->settings->get_option('mapsource', 'cbxgooglemap_general', 1)); | |
| 606 | + $vendor_url = CBXGOOGLEMAP_ROOT_URL . 'assets/vendors/'; | |
| 607 | + //$css_url = CBXGOOGLEMAP_ROOT_URL . 'assets/css/'; | |
| 608 | + //$js_url = CBXGOOGLEMAP_ROOT_URL . 'assets/css/'; | |
| 623 | 609 | |
| 624 | - wp_register_style('awesome-notifications', $css_url_part_vendors.'awesome-notifications/style.css', [], $ver); | |
| 625 | - wp_register_style('flatpickr', $css_url_part_vendors.'flatpickr/flatpickr.min.css', [], $ver); | |
| 626 | - wp_register_style('cbxgooglemap-admin', $css_url_part.'cbxgooglemap-admin.css', [], $ver); | |
| 610 | + $css_url_part = CBXGOOGLEMAP_ROOT_URL . 'assets/css/'; | |
| 611 | + $css_url_part_vendors = CBXGOOGLEMAP_ROOT_URL . 'assets/vendors/'; | |
| 612 | + $js_url_part_vendors = CBXGOOGLEMAP_ROOT_URL . 'assets/vendors/'; | |
| 627 | 613 | |
| 628 | - //listing mode | |
| 629 | - if (($hook == 'edit.php') && $post_type == 'cbxgooglemap') { | |
| 630 | - wp_register_style('cbxgooglemap-admin', $css_url_part.'cbxgooglemap-admin.css', [], $ver); | |
| 631 | - wp_enqueue_style('cbxgooglemap-admin'); | |
| 632 | - } | |
| 614 | + global $post_type, $post; | |
| 633 | 615 | |
| 634 | - //add new, edit mode | |
| 635 | - if (($hook == 'post.php' || $hook == 'post-new.php') && $post_type == 'cbxgooglemap') { | |
| 616 | + $api_key = esc_attr( $this->settings->get_option( 'apikey', 'cbxgooglemap_general', '' ) ); | |
| 617 | + $map_source = absint( $this->settings->get_option( 'mapsource', 'cbxgooglemap_general', 1 ) ); | |
| 636 | 618 | |
| 637 | - if ($map_source == 0) { | |
| 638 | - wp_register_style('leaflet', $vendor_url.'leaflet/leaflet.css', [], $ver, 'all'); | |
| 639 | - wp_register_style('leaflet-control-geocoder', $vendor_url.'leaflet-control-geocoder/Control.Geocoder.css', [], $ver, 'all'); | |
| 640 | - } | |
| 619 | + wp_register_style( 'awesome-notifications', $css_url_part_vendors . 'awesome-notifications/style.css', [], $ver ); | |
| 620 | + wp_register_style( 'flatpickr', $css_url_part_vendors . 'flatpickr/flatpickr.min.css', [], $ver ); | |
| 621 | + wp_register_style( 'cbxgooglemap-admin', $css_url_part . 'cbxgooglemap-admin.css', [], $ver ); | |
| 641 | 622 | |
| 642 | - wp_register_style('select2', $vendor_url.'select2/select2.min.css', [], $ver); | |
| 643 | - wp_register_style('cbxgooglemap-admin', $css_url_part.'cbxgooglemap-admin.css', [ | |
| 644 | - 'select2', | |
| 645 | - ], $ver); | |
| 623 | + //listing mode | |
| 624 | + if ( ( $hook === 'edit.php' ) && $post_type === 'cbxgooglemap' ) { | |
| 625 | + wp_register_style( 'cbxgooglemap-admin', $css_url_part . 'cbxgooglemap-admin.css', [], $ver ); | |
| 626 | + wp_enqueue_style( 'cbxgooglemap-admin' ); | |
| 627 | + } | |
| 646 | 628 | |
| 647 | - wp_enqueue_style('select2'); | |
| 629 | + //add new, edit mode | |
| 630 | + if ( ( $hook === 'post.php' || $hook === 'post-new.php' ) && $post_type === 'cbxgooglemap' ) { | |
| 648 | 631 | |
| 649 | - if ($map_source == 0) { | |
| 650 | - wp_enqueue_style('leaflet'); | |
| 651 | - wp_enqueue_style('leaflet-control-geocoder'); | |
| 652 | - } | |
| 632 | + if ( $map_source === 0 ) { | |
| 633 | + wp_register_style( 'leaflet', $vendor_url . 'leaflet/leaflet.css', [], $ver, 'all' ); | |
| 634 | + wp_register_style( 'leaflet-control-geocoder', $vendor_url . 'leaflet-control-geocoder/Control.Geocoder.css', [], $ver, 'all' ); | |
| 635 | + } | |
| 653 | 636 | |
| 654 | - wp_enqueue_style('awesome-notifications'); | |
| 655 | - wp_enqueue_style('cbxgooglemap-admin'); | |
| 656 | - }//add new, edit mode | |
| 637 | + wp_register_style( 'select2', $vendor_url . 'select2/select2.min.css', [], $ver ); | |
| 638 | + wp_register_style( 'cbxgooglemap-admin', $css_url_part . 'cbxgooglemap-admin.css', [ | |
| 639 | + 'select2', | |
| 640 | + ], $ver ); | |
| 657 | 641 | |
| 658 | - if ($current_page == 'cbxgooglemap_settings') { | |
| 659 | - wp_register_style('pickr', $css_url_part_vendors.'pickr/classic.min.css', [], $ver); | |
| 660 | - wp_register_style('select2', $css_url_part_vendors.'select2/select2.min.css', [], $ver); | |
| 642 | + wp_enqueue_style( 'select2' ); | |
| 661 | 643 | |
| 662 | - wp_register_style('cbxgooglemap-setting', $css_url_part.'cbxgooglemap-setting.css', [ | |
| 663 | - 'pickr', | |
| 664 | - 'awesome-notifications', | |
| 665 | - 'select2', | |
| 666 | - 'cbxgooglemap-admin' | |
| 667 | - ], $ver); | |
| 644 | + if ( $map_source == 0 ) { | |
| 645 | + wp_enqueue_style( 'leaflet' ); | |
| 646 | + wp_enqueue_style( 'leaflet-control-geocoder' ); | |
| 647 | + } | |
| 668 | 648 | |
| 669 | - wp_enqueue_style('pickr'); | |
| 670 | - wp_enqueue_style('awesome-notifications'); | |
| 671 | - wp_enqueue_style('select2'); | |
| 649 | + wp_enqueue_style( 'awesome-notifications' ); | |
| 650 | + wp_enqueue_style( 'cbxgooglemap-admin' ); | |
| 651 | + }//add new, edit mode | |
| 672 | 652 | |
| 673 | - //for demo css | |
| 674 | - if ($map_source == 0) { | |
| 675 | - wp_register_style('leaflet', $vendor_url.'leaflet/leaflet.css', [], $ver, 'all'); | |
| 676 | - wp_register_style('cbxgooglemap-public', $css_url_part.'cbxgooglemap-public.css', ['leaflet'], $ver, 'all'); | |
| 677 | - wp_enqueue_style('leaflet'); | |
| 653 | + if ( $current_page === 'cbxgooglemap_settings' ) { | |
| 654 | + wp_register_style( 'pickr', $css_url_part_vendors . 'pickr/classic.min.css', [], $ver ); | |
| 655 | + wp_register_style( 'select2', $css_url_part_vendors . 'select2/select2.min.css', [], $ver ); | |
| 678 | 656 | |
| 679 | - } else { | |
| 680 | - wp_register_style('cbxgooglemap-public', $css_url_part.'cbxgooglemap-public.css', [], $ver, 'all'); | |
| 681 | - } | |
| 657 | + wp_register_style( 'cbxgooglemap-setting', $css_url_part . 'cbxgooglemap-setting.css', [ | |
| 658 | + 'pickr', | |
| 659 | + 'awesome-notifications', | |
| 660 | + 'select2', | |
| 661 | + 'cbxgooglemap-admin' | |
| 662 | + ], $ver ); | |
| 682 | 663 | |
| 683 | - wp_enqueue_style('cbxgooglemap-public'); | |
| 684 | - wp_enqueue_style('cbxgooglemap-admin'); | |
| 685 | - wp_enqueue_style('cbxgooglemap-setting'); | |
| 664 | + wp_enqueue_style( 'pickr' ); | |
| 665 | + wp_enqueue_style( 'awesome-notifications' ); | |
| 666 | + wp_enqueue_style( 'select2' ); | |
| 686 | 667 | |
| 687 | - //end for demo css | |
| 688 | - }//end setting | |
| 668 | + //for demo css | |
| 669 | + if ( $map_source === 0 ) { | |
| 670 | + wp_register_style( 'leaflet', $vendor_url . 'leaflet/leaflet.css', [], $ver, 'all' ); | |
| 671 | + wp_register_style( 'cbxgooglemap-public', $css_url_part . 'cbxgooglemap-public.css', [ 'leaflet' ], $ver, 'all' ); | |
| 672 | + wp_enqueue_style( 'leaflet' ); | |
| 689 | 673 | |
| 690 | - if ($current_page == 'cbxgooglemap_support') { | |
| 691 | - wp_enqueue_style('cbxgooglemap-admin'); | |
| 692 | - }//end style adding for doc page | |
| 674 | + } else { | |
| 675 | + wp_register_style( 'cbxgooglemap-public', $css_url_part . 'cbxgooglemap-public.css', [], $ver, 'all' ); | |
| 676 | + } | |
| 693 | 677 | |
| 694 | - //tax pages | |
| 695 | - if (($hook == 'edit-tags.php' || $hook == 'term.php') && $post_type == 'cbxgooglemap' && $current_page == '') { | |
| 696 | - wp_enqueue_style('awesome-notifications'); | |
| 697 | - wp_enqueue_style('cbxgooglemap-admin'); | |
| 698 | - } | |
| 699 | - }//end enqueue_styles | |
| 678 | + wp_enqueue_style( 'cbxgooglemap-public' ); | |
| 679 | + wp_enqueue_style( 'cbxgooglemap-admin' ); | |
| 680 | + wp_enqueue_style( 'cbxgooglemap-setting' ); | |
| 700 | 681 | |
| 701 | - /** | |
| 702 | - * Register the JavaScript for the admin area. | |
| 703 | - * | |
| 704 | - * @since 1.0.0 | |
| 705 | - */ | |
| 706 | - public function enqueue_scripts($hook) | |
| 707 | - { | |
| 708 | - $current_page = isset($_GET['page']) ? sanitize_text_field(wp_unslash($_GET['page'])) : '';// phpcs:ignore WordPress.Security.NonceVerification.Recommended | |
| 709 | - $ver = $this->version; | |
| 710 | - $in_footer = [ | |
| 711 | - 'in_footer' => true, | |
| 712 | - ]; | |
| 682 | + //end for demo css | |
| 683 | + }//end setting | |
| 713 | 684 | |
| 714 | - $vendor_url = CBXGOOGLEMAP_ROOT_URL.'assets/vendors/'; | |
| 715 | - $css_url = CBXGOOGLEMAP_ROOT_URL.'assets/css/'; | |
| 716 | - $js_url = CBXGOOGLEMAP_ROOT_URL.'assets/js/'; | |
| 685 | + if ( $current_page === 'cbxgooglemap_support' ) { | |
| 686 | + wp_enqueue_style( 'cbxgooglemap-admin' ); | |
| 687 | + }//end style adding for doc page | |
| 717 | 688 | |
| 718 | - //assets urls | |
| 719 | - $js_url_part = CBXGOOGLEMAP_ROOT_URL.'assets/js/'; | |
| 720 | - $js_url_part_vendors = CBXGOOGLEMAP_ROOT_URL.'assets/vendors/'; | |
| 721 | - $js_url_part_vanila = CBXGOOGLEMAP_ROOT_URL.'assets/js/vanila/'; | |
| 722 | - $js_url_part_build = CBXGOOGLEMAP_ROOT_URL.'assets/js/build/'; | |
| 689 | + //tax pages | |
| 690 | + if ( ( $hook === 'edit-tags.php' || $hook === 'term.php' ) && $post_type === 'cbxgooglemap' && $current_page == '' ) { | |
| 691 | + wp_enqueue_style( 'awesome-notifications' ); | |
| 692 | + wp_enqueue_style( 'cbxgooglemap-admin' ); | |
| 693 | + } | |
| 694 | + }//end enqueue_styles | |
| 723 | 695 | |
| 696 | + /** | |
| 697 | + * Register the JavaScript for the admin area. | |
| 698 | + * | |
| 699 | + * @since 1.0.0 | |
| 700 | + */ | |
| 701 | + public function enqueue_scripts( $hook ) { | |
| 702 | + $current_page = isset( $_GET['page'] ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : '';// phpcs:ignore WordPress.Security.NonceVerification.Recommended | |
| 703 | + $ver = $this->version; | |
| 704 | + $in_footer = [ | |
| 705 | + 'in_footer' => true, | |
| 706 | + ]; | |
| 724 | 707 | |
| 725 | - $t = true; | |
| 726 | - $f = false; | |
| 708 | + $vendor_url = CBXGOOGLEMAP_ROOT_URL . 'assets/vendors/'; | |
| 709 | + $css_url = CBXGOOGLEMAP_ROOT_URL . 'assets/css/'; | |
| 710 | + $js_url = CBXGOOGLEMAP_ROOT_URL . 'assets/js/'; | |
| 727 | 711 | |
| 712 | + //assets urls | |
| 713 | + $js_url_part = CBXGOOGLEMAP_ROOT_URL . 'assets/js/'; | |
| 714 | + $js_url_part_vendors = CBXGOOGLEMAP_ROOT_URL . 'assets/vendors/'; | |
| 715 | + $js_url_part_vanila = CBXGOOGLEMAP_ROOT_URL . 'assets/js/vanila/'; | |
| 716 | + $js_url_part_build = CBXGOOGLEMAP_ROOT_URL . 'assets/js/build/'; | |
| 728 | 717 | |
| 729 | - $in_footer = [ | |
| 730 | - 'in_footer' => $t, | |
| 731 | - ]; | |
| 732 | 718 | |
| 733 | - $in_footer_async = [ | |
| 734 | - 'in_footer' => $t, | |
| 735 | - 'strategy' => 'async' | |
| 736 | - ]; | |
| 719 | + $t = true; | |
| 720 | + $f = false; | |
| 737 | 721 | |
| 738 | - $global_translation = CBXGooglemapHelper::global_translation_strings(); | |
| 739 | - $plus_svg = cbxgooglemap_esc_svg(cbxgooglemap_load_svg('icon_plus')); | |
| 740 | 722 | |
| 723 | + $in_footer = [ | |
| 724 | + 'in_footer' => $t, | |
| 725 | + ]; | |
| 741 | 726 | |
| 742 | - global $post_type, $post; | |
| 743 | - $post_id = isset($post->ID) ? absint($post->ID) : 0; | |
| 727 | + $in_footer_async = [ | |
| 728 | + 'in_footer' => $t, | |
| 729 | + 'strategy' => 'async' | |
| 730 | + ]; | |
| 744 | 731 | |
| 745 | - $api_key = esc_attr($this->settings->get_option('apikey', 'cbxgooglemap_general', '')); | |
| 746 | - $map_source = absint($this->settings->get_option('mapsource', 'cbxgooglemap_general', 1)); | |
| 747 | - $default_mapicon = esc_url($this->settings->get_option('mapicon', 'cbxgooglemap_general', '')); | |
| 732 | + $global_translation = CBXGooglemapHelper::global_translation_strings(); | |
| 733 | + $plus_svg = cbxgooglemap_esc_svg( cbxgooglemap_load_svg( 'icon_plus' ) ); | |
| 748 | 734 | |
| 749 | - /*if($default_mapicon == ''){ | |
| 750 | - $default_mapicon = 'https://mt.googleapis.com/vt/icon/name=icons/spotlight/spotlight-poi.png'; | |
| 751 | - }*/ | |
| 752 | 735 | |
| 753 | - /*$zoom_level_default = intval( $this->settings->get_option( 'zoom', 'cbxgooglemap_general', '8' ) ); | |
| 754 | - if ( $zoom_level_default == 0 ) { | |
| 755 | - $zoom_level_default = 8; | |
| 756 | - }*/ | |
| 736 | + global $post_type, $post; | |
| 737 | + $post_id = isset( $post->ID ) ? absint( $post->ID ) : 0; | |
| 757 | 738 | |
| 739 | + $api_key = esc_attr( $this->settings->get_option( 'apikey', 'cbxgooglemap_general', '' ) ); | |
| 740 | + $map_source = absint( $this->settings->get_option( 'mapsource', 'cbxgooglemap_general', 1 ) ); | |
| 741 | + $default_mapicon = esc_url( $this->settings->get_option( 'mapicon', 'cbxgooglemap_general', '' ) ); | |
| 758 | 742 | |
| 759 | - wp_register_script('cbxgooglemap-events', $js_url.'cbxgooglemap-events.js', [], $ver, $in_footer); | |
| 760 | - wp_register_script('awesome-notifications', $js_url_part_vendors.'awesome-notifications/script.js', [], $ver, $in_footer); | |
| 761 | - wp_register_script('select2', $js_url_part_vendors.'select2/select2.min.js', ['jquery'], $ver, $in_footer); | |
| 762 | - //wp_register_script( 'flatpickr', $js_url_part_vendors . 'flatpickr/flatpickr.min.js', [ 'jquery' ], $ver, true ); | |
| 763 | - wp_register_script('pickr', $js_url_part_vendors.'pickr/pickr.min.js', [], $ver, $in_footer); | |
| 764 | - //wp_register_script( 'jquery-validate', $js_url_part_vendors . 'jquery-validation/jquery.validate.min.js', [ 'jquery' ], $ver, $in_footer ); | |
| 743 | + /*if($default_mapicon == ''){ | |
| 744 | + $default_mapicon = 'https://mt.googleapis.com/vt/icon/name=icons/spotlight/spotlight-poi.png'; | |
| 745 | + }*/ | |
| 765 | 746 | |
| 766 | - //maps listing mode | |
| 767 | - if ($hook == 'edit.php' && $post_type == 'cbxgooglemap') { | |
| 768 | - wp_register_script('cbxgooglemap-listing', $js_url.'cbxgooglemap-listing.js', ['jquery'], $ver, $t); | |
| 747 | + /*$zoom_level_default = intval( $this->settings->get_option( 'zoom', 'cbxgooglemap_general', '8' ) ); | |
| 748 | + if ( $zoom_level_default == 0 ) { | |
| 749 | + $zoom_level_default = 8; | |
| 750 | + }*/ | |
| 769 | 751 | |
| 770 | - $cbxgooglemap_listing_js_vars = apply_filters('cbxgooglemap_listing_js_vars', $global_translation); | |
| 771 | - wp_localize_script('cbxgooglemap-listing', 'cbxgooglemap_listing', $cbxgooglemap_listing_js_vars); | |
| 772 | 752 | |
| 773 | - wp_enqueue_script('jquery'); | |
| 774 | - wp_enqueue_script('cbxgooglemap-listing'); | |
| 775 | - } | |
| 753 | + wp_register_script( 'cbxgooglemap-events', $js_url . 'cbxgooglemap-events.js', [], $ver, $in_footer ); | |
| 754 | + wp_register_script( 'awesome-notifications', $js_url_part_vendors . 'awesome-notifications/script.js', [], $ver, $in_footer ); | |
| 755 | + wp_register_script( 'select2', $js_url_part_vendors . 'select2/select2.min.js', [ 'jquery' ], $ver, $in_footer ); | |
| 756 | + //wp_register_script( 'flatpickr', $js_url_part_vendors . 'flatpickr/flatpickr.min.js', [ 'jquery' ], $ver, true ); | |
| 757 | + wp_register_script( 'pickr', $js_url_part_vendors . 'pickr/pickr.min.js', [], $ver, $in_footer ); | |
| 758 | + //wp_register_script( 'jquery-validate', $js_url_part_vendors . 'jquery-validation/jquery.validate.min.js', [ 'jquery' ], $ver, $in_footer ); | |
| 776 | 759 | |
| 777 | - //add new or edit mode | |
| 778 | - if (($hook == 'post.php' || $hook == 'post-new.php') && $post_type == 'cbxgooglemap') { | |
| 760 | + //maps listing mode | |
| 761 | + if ( $hook == 'edit.php' && $post_type == 'cbxgooglemap' ) { | |
| 762 | + wp_register_script( 'cbxgooglemap-listing', $js_url . 'cbxgooglemap-listing.js', [ 'jquery' ], $ver, $t ); | |
| 779 | 763 | |
| 780 | - wp_enqueue_script('cbxgooglemap-events'); | |
| 764 | + $cbxgooglemap_listing_js_vars = apply_filters( 'cbxgooglemap_listing_js_vars', $global_translation ); | |
| 765 | + wp_localize_script( 'cbxgooglemap-listing', 'cbxgooglemap_listing', $cbxgooglemap_listing_js_vars ); | |
| 781 | 766 | |
| 767 | + wp_enqueue_script( 'jquery' ); | |
| 768 | + wp_enqueue_script( 'cbxgooglemap-listing' ); | |
| 769 | + } | |
| 782 | 770 | |
| 783 | - $edit_js_dep = ['jquery', 'select2']; | |
| 771 | + //add new or edit mode | |
| 772 | + if ( ( $hook == 'post.php' || $hook == 'post-new.php' ) && $post_type == 'cbxgooglemap' ) { | |
| 784 | 773 | |
| 785 | - if ($map_source == 1 && $api_key != '') { | |
| 786 | - wp_register_script('coregooglemapapi', '//maps.googleapis.com/maps/api/js?key='.$api_key.'&libraries=places&callback=Function.prototype', [], $ver, $in_footer_async); | |
| 774 | + wp_enqueue_script( 'cbxgooglemap-events' ); | |
| 787 | 775 | |
| 788 | - $edit_js_dep[] = 'awesome-notifications'; | |
| 789 | - $edit_js_dep[] = 'coregooglemapapi'; | |
| 790 | - $edit_js_dep[] = 'cbxgooglemap-events'; | |
| 791 | 776 | |
| 792 | - } elseif ($map_source == 0) { | |
| 793 | - wp_register_script('coregooglemapapi', $vendor_url.'leaflet/leaflet.js', [], $ver, $in_footer_async); | |
| 794 | - wp_register_script('leaflet-control-geocoder', $vendor_url.'leaflet-control-geocoder/Control.Geocoder.js', [], $ver, $in_footer_async); | |
| 777 | + $edit_js_dep = [ 'jquery', 'select2' ]; | |
| 795 | 778 | |
| 796 | - $edit_js_dep[] = 'awesome-notifications'; | |
| 797 | - $edit_js_dep[] = 'coregooglemapapi'; | |
| 798 | - $edit_js_dep[] = 'leaflet-control-geocoder'; | |
| 799 | - $edit_js_dep[] = 'cbxgooglemap-events'; | |
| 800 | - } | |
| 779 | + //if ($map_source == 1 && $api_key != '') { | |
| 780 | + if ( $map_source == 1 ) { | |
| 781 | + wp_register_script( 'coregooglemapapi', '//maps.googleapis.com/maps/api/js?key=' . $api_key . '&libraries=places&callback=Function.prototype', [], $ver, $in_footer_async ); | |
| 801 | 782 | |
| 802 | - wp_enqueue_media(); | |
| 803 | - $main_marker = []; | |
| 783 | + $edit_js_dep[] = 'awesome-notifications'; | |
| 784 | + $edit_js_dep[] = 'coregooglemapapi'; | |
| 785 | + $edit_js_dep[] = 'cbxgooglemap-events'; | |
| 804 | 786 | |
| 805 | - wp_register_script('cbxgooglemap-edit', $js_url.'cbxgooglemap-edit.js', $edit_js_dep, $ver, $in_footer); | |
| 787 | + } elseif ( $map_source == 0 ) { | |
| 788 | + wp_register_script( 'coregooglemapapi', $vendor_url . 'leaflet/leaflet.js', [], $ver, $in_footer_async ); | |
| 789 | + wp_register_script( 'leaflet-control-geocoder', $vendor_url . 'leaflet-control-geocoder/Control.Geocoder.js', [], $ver, $in_footer_async ); | |
| 806 | 790 | |
| 807 | - $edit_js_vars = [ | |
| 808 | - 'search_address' => esc_html__('Search Address', 'cbxgooglemap'), | |
| 809 | - 'icon_url_default' => $default_mapicon, | |
| 810 | - 'api_key' => $api_key, | |
| 811 | - 'map_source' => $map_source, | |
| 812 | - 'map_title_placeholder' => esc_html__('Map Title Here', 'cbxgooglemap'), | |
| 813 | - 'no_address_found' => esc_html__('No details available for current input', 'cbxgooglemap'), | |
| 814 | - ]; | |
| 791 | + $edit_js_dep[] = 'awesome-notifications'; | |
| 792 | + $edit_js_dep[] = 'coregooglemapapi'; | |
| 793 | + $edit_js_dep[] = 'leaflet-control-geocoder'; | |
| 794 | + $edit_js_dep[] = 'cbxgooglemap-events'; | |
| 795 | + } | |
| 815 | 796 | |
| 816 | - $edit_js_vars = array_merge($edit_js_vars, $global_translation); | |
| 797 | + wp_enqueue_media(); | |
| 798 | + $main_marker = []; | |
| 817 | 799 | |
| 818 | - $edit_js_vars = apply_filters('cbxgooglemap_edit_js_vars', $edit_js_vars, $post_id); | |
| 800 | + wp_register_script( 'cbxgooglemap-edit', $js_url . 'cbxgooglemap-edit.js', $edit_js_dep, $ver, $in_footer ); | |
| 819 | 801 | |
| 820 | - wp_localize_script('cbxgooglemap-edit', 'cbxgooglemap_edit', $edit_js_vars); | |
| 802 | + $edit_js_vars = [ | |
| 803 | + 'search_address' => esc_html__( 'Search Address', 'cbxgooglemap' ), | |
| 804 | + 'icon_url_default' => $default_mapicon, | |
| 805 | + 'api_key' => $api_key, | |
| 806 | + 'no_api_key' => ( $api_key === '' ) ? esc_html__( 'No google map api key found, please check CBX Map plugin setting.', 'cbxgooglemap' ) : '', | |
| 807 | + 'map_source' => $map_source, | |
| 808 | + 'map_title_placeholder' => esc_html__( 'Map Title Here', 'cbxgooglemap' ), | |
| 809 | + 'no_address_found' => esc_html__( 'No details available for current input', 'cbxgooglemap' ), | |
| 810 | + ]; | |
| 821 | 811 | |
| 822 | - //enqueue dependency js cripts | |
| 823 | - foreach ($edit_js_dep as $dep) { | |
| 824 | - wp_enqueue_script($dep); | |
| 825 | - } | |
| 812 | + $edit_js_vars = array_merge( $edit_js_vars, $global_translation ); | |
| 826 | 813 | |
| 827 | - //enqueue main edit scripts | |
| 828 | - wp_enqueue_script('cbxgooglemap-edit'); | |
| 829 | - } | |
| 814 | + $edit_js_vars = apply_filters( 'cbxgooglemap_edit_js_vars', $edit_js_vars, $post_id ); | |
| 830 | 815 | |
| 831 | - if ($current_page == 'cbxgooglemap_settings') { | |
| 832 | - $setting_js_deps = [ | |
| 833 | - 'jquery', | |
| 834 | - 'jquery-ui-sortable', | |
| 835 | - 'select2', | |
| 836 | - 'pickr', | |
| 837 | - 'awesome-notifications' | |
| 838 | - ]; | |
| 816 | + wp_localize_script( 'cbxgooglemap-edit', 'cbxgooglemap_edit', $edit_js_vars ); | |
| 839 | 817 | |
| 840 | - $setting_js_deps = apply_filters('cbxgooglemap_setting_js_deps', $setting_js_deps); | |
| 818 | + //enqueue dependency js cripts | |
| 819 | + foreach ( $edit_js_dep as $dep ) { | |
| 820 | + wp_enqueue_script( $dep ); | |
| 821 | + } | |
| 841 | 822 | |
| 842 | - $blog_id = is_multisite() ? get_current_blog_id() : null; | |
| 823 | + //enqueue main edit scripts | |
| 824 | + wp_enqueue_script( 'cbxgooglemap-edit' ); | |
| 825 | + } | |
| 843 | 826 | |
| 844 | - // Localize the script with new data | |
| 845 | - $setting_js_vars = [ | |
| 846 | - 'global_setting_link_html' => '<a href="'.esc_url(admin_url('edit.php?post_type=cbxgooglemap&page=cbxgooglemap_settings')).'" class="button outline primary pull-right">'.esc_html__('Global Settings', 'cbxgooglemap').'</a>', | |
| 847 | - 'lang' => get_user_locale(), | |
| 848 | - 'clearPermalinks' => esc_url_raw(get_rest_url($blog_id, 'cbxgooglemap/v1/admin/clear-permalinks')), | |
| 849 | - 'rest_end_points' => [ | |
| 850 | - 'migrate_wp_wpsimplegooglemap' => esc_url_raw(get_rest_url('', 'cbxgooglemap/v1/migrate-wp-wpsimplegooglemap-data')), | |
| 851 | - ], | |
| 852 | - ]; | |
| 827 | + if ( $current_page == 'cbxgooglemap_settings' ) { | |
| 828 | + $setting_js_deps = [ | |
| 829 | + 'jquery', | |
| 830 | + 'jquery-ui-sortable', | |
| 831 | + 'select2', | |
| 832 | + 'pickr', | |
| 833 | + 'awesome-notifications' | |
| 834 | + ]; | |
| 853 | 835 | |
| 854 | - $import_modal_html = '<div id="cbxgooglemap_settings_import_modal_wrap" class="cbx-chota">'; | |
| 855 | - $import_modal_html .= '<h2>'.esc_html__('Import CBX Google Map Setting: Json file', 'cbxgooglemap').'</h2>'; | |
| 856 | - $import_modal_html .= '<form method="post" id="cbxgooglemap_settings_import_form">'; | |
| 857 | - $import_modal_html .= '<input type="file" name="file" id="cbxgooglemap_settings_import_file" accept="application/json" />'; | |
| 858 | - $import_modal_html .= '</form>'; | |
| 859 | - $import_modal_html .= '</div>'; | |
| 836 | + $setting_js_deps = apply_filters( 'cbxgooglemap_setting_js_deps', $setting_js_deps ); | |
| 860 | 837 | |
| 861 | - $setting_js_vars['import_modal'] = $import_modal_html; | |
| 862 | - $setting_js_vars['import_modal_progress'] = '<p>'.esc_html__('Please wait, Importing...', 'cbxgooglemap').'</p>'; | |
| 838 | + $blog_id = is_multisite() ? get_current_blog_id() : null; | |
| 863 | 839 | |
| 864 | - $cbxgooglemap_setting_js_vars = apply_filters('cbxgooglemap_setting_js_vars', array_merge($setting_js_vars, $global_translation)); | |
| 840 | + // Localize the script with new data | |
| 841 | + $setting_js_vars = [ | |
| 842 | + 'global_setting_link_html' => '<a href="' . esc_url( admin_url( 'edit.php?post_type=cbxgooglemap&page=cbxgooglemap_settings' ) ) . '" class="button outline primary pull-right">' . esc_html__( 'Global Settings', | |
| 843 | + 'cbxgooglemap' ) . '</a>', | |
| 844 | + 'lang' => get_user_locale(), | |
| 845 | + 'clearPermalinks' => esc_url_raw( get_rest_url( $blog_id, 'cbxgooglemap/v1/admin/clear-permalinks' ) ), | |
| 846 | + 'rest_end_points' => [ | |
| 847 | + 'migrate_wp_wpsimplegooglemap' => esc_url_raw( get_rest_url( '', 'cbxgooglemap/v1/migrate-wp-wpsimplegooglemap-data' ) ), | |
| 848 | + ], | |
| 849 | + ]; | |
| 865 | 850 | |
| 866 | - wp_register_script('cbxgooglemap-setting', $js_url.'cbxgooglemap-setting.js', $setting_js_deps, $ver, $in_footer); | |
| 851 | + $import_modal_html = '<div id="cbxgooglemap_settings_import_modal_wrap" class="cbx-chota">'; | |
| 852 | + $import_modal_html .= '<h2>' . esc_html__( 'Import CBX Google Map Setting: Json file', 'cbxgooglemap' ) . '</h2>'; | |
| 853 | + $import_modal_html .= '<form method="post" id="cbxgooglemap_settings_import_form">'; | |
| 854 | + $import_modal_html .= '<input type="file" name="file" id="cbxgooglemap_settings_import_file" accept="application/json" />'; | |
| 855 | + $import_modal_html .= '</form>'; | |
| 856 | + $import_modal_html .= '</div>'; | |
| 867 | 857 | |
| 868 | - wp_localize_script('cbxgooglemap-setting', 'cbxgooglemap_setting_js_var', $cbxgooglemap_setting_js_vars); | |
| 858 | + $setting_js_vars['import_modal'] = $import_modal_html; | |
| 859 | + $setting_js_vars['import_modal_progress'] = '<p>' . esc_html__( 'Please wait, Importing...', 'cbxgooglemap' ) . '</p>'; | |
| 869 | 860 | |
| 870 | - //core | |
| 871 | - wp_enqueue_script('jquery'); | |
| 872 | - wp_enqueue_media(); | |
| 861 | + $cbxgooglemap_setting_js_vars = apply_filters( 'cbxgooglemap_setting_js_vars', array_merge( $setting_js_vars, $global_translation ) ); | |
| 873 | 862 | |
| 874 | - //vendors | |
| 875 | - wp_enqueue_script('jquery-ui-sortable'); | |
| 876 | - wp_enqueue_script('select2'); | |
| 877 | - wp_enqueue_script('pickr'); | |
| 878 | - wp_enqueue_script('awesome-notifications'); | |
| 863 | + wp_register_script( 'cbxgooglemap-setting', $js_url . 'cbxgooglemap-setting.js', $setting_js_deps, $ver, $in_footer ); | |
| 879 | 864 | |
| 880 | - //custom | |
| 881 | - wp_enqueue_script('cbxgooglemap-setting'); | |
| 865 | + wp_localize_script( 'cbxgooglemap-setting', 'cbxgooglemap_setting_js_var', $cbxgooglemap_setting_js_vars ); | |
| 882 | 866 | |
| 883 | - //for demo js (we need this but we will sort out later) | |
| 884 | - if (($map_source == 1 && ! empty($api_key)) || $map_source == 0) { | |
| 885 | - if ($map_source == 1) { | |
| 886 | - //phpcs:ignore WordPress.WP.EnqueuedResourceParameters.NotInFooter | |
| 887 | - wp_register_script('coregooglemapapi', '//maps.googleapis.com/maps/api/js?key='.esc_attr($api_key).'&libraries=places&callback=Function.prototype', [], $ver, $in_footer_async); | |
| 888 | - wp_register_script('cbxgooglemap-public', $js_url.'cbxgooglemap-public.js', [ | |
| 889 | - 'jquery', | |
| 890 | - 'cbxgooglemap-events', | |
| 891 | - 'coregooglemapapi' | |
| 892 | - ], $ver, $in_footer); | |
| 867 | + //core | |
| 868 | + wp_enqueue_script( 'jquery' ); | |
| 869 | + wp_enqueue_media(); | |
| 893 | 870 | |
| 894 | - wp_enqueue_script('coregooglemapapi'); | |
| 895 | - } else { | |
| 896 | - wp_register_script('coregooglemapapi', $vendor_url.'leaflet/leaflet.js', [], $ver, $in_footer_async); | |
| 897 | - wp_register_script('cbxgooglemap-public', $js_url.'cbxgooglemap-public.js', [ | |
| 898 | - 'jquery', | |
| 899 | - 'cbxgooglemap-events', | |
| 900 | - 'coregooglemapapi', | |
| 901 | - //'leaflet-control-geocoder' | |
| 902 | - ], $ver, $in_footer); | |
| 871 | + //vendors | |
| 872 | + wp_enqueue_script( 'jquery-ui-sortable' ); | |
| 873 | + wp_enqueue_script( 'select2' ); | |
| 874 | + wp_enqueue_script( 'pickr' ); | |
| 875 | + wp_enqueue_script( 'awesome-notifications' ); | |
| 903 | 876 | |
| 904 | - wp_enqueue_script('cbxgooglemap-events'); | |
| 905 | - wp_enqueue_script('coregooglemapapi'); | |
| 906 | - //wp_enqueue_script( 'leaflet-control-geocoder' ); | |
| 907 | - } | |
| 877 | + //custom | |
| 878 | + wp_enqueue_script( 'cbxgooglemap-setting' ); | |
| 908 | 879 | |
| 909 | - wp_enqueue_script('cbxgooglemap-public'); | |
| 910 | - }//end for demo js | |
| 880 | + //for demo js (we need this but we will sort out later) | |
| 881 | + if ( ( $map_source == 1 && ! empty( $api_key ) ) || $map_source == 0 ) { | |
| 882 | + if ( $map_source == 1 ) { | |
| 883 | + //phpcs:ignore WordPress.WP.EnqueuedResourceParameters.NotInFooter | |
| 884 | + wp_register_script( 'coregooglemapapi', '//maps.googleapis.com/maps/api/js?key=' . esc_attr( $api_key ) . '&libraries=places&callback=Function.prototype', [], $ver, | |
| 885 | + $in_footer_async ); | |
| 886 | + wp_register_script( 'cbxgooglemap-public', $js_url . 'cbxgooglemap-public.js', [ | |
| 887 | + 'jquery', | |
| 888 | + 'cbxgooglemap-events', | |
| 889 | + 'coregooglemapapi' | |
| 890 | + ], $ver, $in_footer ); | |
| 911 | 891 | |
| 912 | - }//end js for setting page | |
| 892 | + wp_enqueue_script( 'coregooglemapapi' ); | |
| 893 | + } else { | |
| 894 | + wp_register_script( 'coregooglemapapi', $vendor_url . 'leaflet/leaflet.js', [], $ver, $in_footer_async ); | |
| 895 | + wp_register_script( 'cbxgooglemap-public', $js_url . 'cbxgooglemap-public.js', [ | |
| 896 | + 'jquery', | |
| 897 | + 'cbxgooglemap-events', | |
| 898 | + 'coregooglemapapi', | |
| 899 | + //'leaflet-control-geocoder' | |
| 900 | + ], $ver, $in_footer ); | |
| 913 | 901 | |
| 914 | - //enqueue js for tax page | |
| 915 | - if (($hook == 'edit-tags.php' || $hook == 'term.php') && $post_type == 'cbxgooglemap' && $current_page == '') { | |
| 916 | - //tax js dependencies | |
| 902 | + wp_enqueue_script( 'cbxgooglemap-events' ); | |
| 903 | + wp_enqueue_script( 'coregooglemapapi' ); | |
| 904 | + //wp_enqueue_script( 'leaflet-control-geocoder' ); | |
| 905 | + } | |
| 917 | 906 | |
| 918 | - $tax_js_deps = [ | |
| 919 | - //core | |
| 920 | - 'jquery', | |
| 921 | - //vendors | |
| 922 | - //'jquery-validate' | |
| 923 | - ]; | |
| 907 | + wp_enqueue_script( 'cbxgooglemap-public' ); | |
| 908 | + }//end for demo js | |
| 924 | 909 | |
| 925 | - $tax_js_deps = apply_filters('cbxgooglemap_tax_js_deps', $tax_js_deps); | |
| 910 | + }//end js for setting page | |
| 926 | 911 | |
| 927 | - $new_map_link_html = '<a href="'.esc_url(admin_url('edit.php?post_type=cbxgooglemap')).'" class="button secondary icon icon-right icon-inline mr-5"><i class="cbx-icon">'.$plus_svg.'</i>'.esc_html__('New Map', | |
| 928 | - 'cbxgooglemap').'</a>'; | |
| 912 | + //enqueue js for tax page | |
| 913 | + if ( ( $hook == 'edit-tags.php' || $hook == 'term.php' ) && $post_type == 'cbxgooglemap' && $current_page == '' ) { | |
| 914 | + //tax js dependencies | |
| 929 | 915 | |
| 930 | - $global_setting_link_html = '<a href="'.esc_url(admin_url('edit.php?post_type=cbxgooglemap&page=cbxgooglemap_settings')).'" class="button outline primary">'.esc_html__('Global Settings', 'cbxgooglemap').'</a>'; | |
| 916 | + $tax_js_deps = [ | |
| 917 | + //core | |
| 918 | + 'jquery', | |
| 919 | + //vendors | |
| 920 | + //'jquery-validate' | |
| 921 | + ]; | |
| 931 | 922 | |
| 932 | - $tax_js_vars = | |
| 933 | - [ | |
| 934 | - 'tax_title_prefix' => esc_html__('Map:', 'cbxgooglemap'), | |
| 935 | - 'tags_title' => esc_html__('Map: Tags', 'cbxgooglemap'), | |
| 936 | - 'category_title' => esc_html__('Map: Category', 'cbxgooglemap'), | |
| 937 | - 'tax_new_setting' => '<div class="wp-heading-wrap-right pull-right">'.$new_map_link_html.$global_setting_link_html.'</div>' | |
| 938 | - ]; | |
| 923 | + $tax_js_deps = apply_filters( 'cbxgooglemap_tax_js_deps', $tax_js_deps ); | |
| 939 | 924 | |
| 940 | - $tax_js_vars = apply_filters('cbxgooglemap_tax_js_vars', array_merge($tax_js_vars, $global_translation)); | |
| 925 | + $new_map_link_html = '<a href="' . esc_url( admin_url( 'edit.php?post_type=cbxgooglemap' ) ) . '" class="button secondary icon icon-right icon-inline mr-5"><i class="cbx-icon">' . $plus_svg . '</i>' . esc_html__( 'New Map', | |
| 926 | + 'cbxgooglemap' ) . '</a>'; | |
| 941 | 927 | |
| 942 | - wp_register_script('cbxgooglemap-tax', $js_url_part.'cbxgooglemap-tax.js', $tax_js_deps, $ver, true); | |
| 943 | - wp_localize_script('cbxgooglemap-tax', 'cbxgooglemap_tax', $tax_js_vars); | |
| 928 | + $global_setting_link_html = '<a href="' . esc_url( admin_url( 'edit.php?post_type=cbxgooglemap&page=cbxgooglemap_settings' ) ) . '" class="button outline primary">' . esc_html__( 'Global Settings', | |
| 929 | + 'cbxgooglemap' ) . '</a>'; | |
| 944 | 930 | |
| 931 | + $tax_js_vars = | |
| 932 | + [ | |
| 933 | + 'tax_title_prefix' => esc_html__( 'Map:', 'cbxgooglemap' ), | |
| 934 | + 'tags_title' => esc_html__( 'Map: Tags', 'cbxgooglemap' ), | |
| 935 | + 'category_title' => esc_html__( 'Map: Category', 'cbxgooglemap' ), | |
| 936 | + 'tax_new_setting' => '<div class="wp-heading-wrap-right pull-right">' . $new_map_link_html . $global_setting_link_html . '</div>' | |
| 937 | + ]; | |
| 945 | 938 | |
| 946 | - //core | |
| 947 | - wp_enqueue_script('jquery'); | |
| 939 | + $tax_js_vars = apply_filters( 'cbxgooglemap_tax_js_vars', array_merge( $tax_js_vars, $global_translation ) ); | |
| 948 | 940 | |
| 949 | - //vendors | |
| 950 | - //wp_enqueue_script( 'jquery-validate' ); | |
| 941 | + wp_register_script( 'cbxgooglemap-tax', $js_url_part . 'cbxgooglemap-tax.js', $tax_js_deps, $ver, true ); | |
| 942 | + wp_localize_script( 'cbxgooglemap-tax', 'cbxgooglemap_tax', $tax_js_vars ); | |
| 951 | 943 | |
| 952 | - //custom | |
| 953 | - wp_enqueue_script('cbxgooglemap-tax'); | |
| 954 | - }//end enqueue js for tax page | |
| 955 | - }//end enqueue_scripts | |
| 956 | 944 | |
| 957 | - /** | |
| 958 | - * Init all gutenberg blocks | |
| 959 | - */ | |
| 960 | - public function gutenberg_blocks(){ | |
| 961 | - if ( ! function_exists('register_block_type')) { | |
| 962 | - return; | |
| 963 | - } | |
| 945 | + //core | |
| 946 | + wp_enqueue_script( 'jquery' ); | |
| 964 | 947 | |
| 965 | - $settings = $this->settings; | |
| 966 | - $in_footer = [ | |
| 967 | - 'in_footer' => true, | |
| 968 | - ]; | |
| 948 | + //vendors | |
| 949 | + //wp_enqueue_script( 'jquery-validate' ); | |
| 969 | 950 | |
| 951 | + //custom | |
| 952 | + wp_enqueue_script( 'cbxgooglemap-tax' ); | |
| 953 | + }//end enqueue js for tax page | |
| 954 | + }//end enqueue_scripts | |
| 970 | 955 | |
| 971 | - //$general_settings = get_option( 'cbxgooglemap_general', [] ); | |
| 956 | + /** | |
| 957 | + * Init all gutenberg blocks | |
| 958 | + */ | |
| 959 | + public function gutenberg_blocks() { | |
| 960 | + if ( ! function_exists( 'register_block_type' ) ) { | |
| 961 | + return; | |
| 962 | + } | |
| 972 | 963 | |
| 973 | - //default field values | |
| 974 | - $zoom_default = $settings->get_field('zoom', 'cbxgooglemap_general', '8'); | |
| 975 | - if ($zoom_default == 0) { | |
| 976 | - $zoom_default = 8; | |
| 977 | - } | |
| 964 | + $settings = $this->settings; | |
| 965 | + $in_footer = [ | |
| 966 | + 'in_footer' => true, | |
| 967 | + ]; | |
| 978 | 968 | |
| 979 | - $width_default = $settings->get_field('width', 'cbxgooglemap_general', '100%'); | |
| 980 | - if ($width_default == '' || $width_default == 0) { | |
| 981 | - $width_default = '100%'; | |
| 982 | - } | |
| 983 | 969 | |
| 984 | - $height_default = absint($settings->get_field('height', 'cbxgooglemap_general', '300')); | |
| 985 | - if ($height_default == 0) { | |
| 986 | - $height_default = 300; | |
| 987 | - } | |
| 970 | + //$general_settings = get_option( 'cbxgooglemap_general', [] ); | |
| 988 | 971 | |
| 972 | + //default field values | |
| 973 | + $zoom_default = $settings->get_field( 'zoom', 'cbxgooglemap_general', '8' ); | |
| 974 | + if ( $zoom_default == 0 ) { | |
| 975 | + $zoom_default = 8; | |
| 976 | + } | |
| 989 | 977 | |
| 990 | - $scrollwheel_default = absint($settings->get_field('scrollwheel', 'cbxgooglemap_general', 1)); | |
| 991 | - $showinfo_default = absint($settings->get_field('showinfo', 'cbxgooglemap_general', 1)); | |
| 992 | - $infow_open_default = absint($settings->get_field('infow_open', 'cbxgooglemap_general', 1)); | |
| 993 | - $maptype_default = esc_attr($settings->get_field('maptype', 'cbxgooglemap_general', 'roadmap')); | |
| 978 | + $width_default = $settings->get_field( 'width', 'cbxgooglemap_general', '100%' ); | |
| 979 | + if ( $width_default == '' || $width_default == 0 ) { | |
| 980 | + $width_default = '100%'; | |
| 981 | + } | |
| 994 | 982 | |
| 995 | - $query = get_posts([ | |
| 996 | - 'post_type' => 'cbxgooglemap', | |
| 997 | - 'orderby' => 'date', | |
| 998 | - 'posts_per_page' => -1, | |
| 999 | - 'post_status' => 'publish' | |
| 1000 | - ]); | |
| 983 | + $height_default = absint( $settings->get_field( 'height', 'cbxgooglemap_general', '300' ) ); | |
| 984 | + if ( $height_default == 0 ) { | |
| 985 | + $height_default = 300; | |
| 986 | + } | |
| 1001 | 987 | |
| 1002 | - $googleMap_posts = []; | |
| 1003 | 988 | |
| 1004 | - $googleMap_posts[] = [ | |
| 1005 | - 'label' => esc_html__('Select Map', 'cbxgooglemap'), | |
| 1006 | - 'value' => '0' | |
| 1007 | - ]; | |
| 989 | + $scrollwheel_default = absint( $settings->get_field( 'scrollwheel', 'cbxgooglemap_general', 1 ) ); | |
| 990 | + $showinfo_default = absint( $settings->get_field( 'showinfo', 'cbxgooglemap_general', 1 ) ); | |
| 991 | + $infow_open_default = absint( $settings->get_field( 'infow_open', 'cbxgooglemap_general', 1 ) ); | |
| 992 | + $maptype_default = esc_attr( $settings->get_field( 'maptype', 'cbxgooglemap_general', 'roadmap' ) ); | |
| 1008 | 993 | |
| 1009 | - foreach ($query as $key => $data) { | |
| 1010 | - $googleMap_posts[] = [ | |
| 1011 | - 'label' => esc_html($data->post_title), | |
| 1012 | - 'value' => absint($data->ID) | |
| 1013 | - ]; | |
| 1014 | - } | |
| 994 | + $query = get_posts( [ | |
| 995 | + 'post_type' => 'cbxgooglemap', | |
| 996 | + 'orderby' => 'date', | |
| 997 | + 'posts_per_page' => - 1, | |
| 998 | + 'post_status' => 'publish' | |
| 999 | + ] ); | |
| 1015 | 1000 | |
| 1001 | + $googleMap_posts = []; | |
| 1016 | 1002 | |
| 1017 | - wp_register_script('cbxgooglemap-block', plugin_dir_url(__FILE__).'../assets/js/blocks/cbxgooglemap-block.js', [ | |
| 1018 | - 'wp-blocks', | |
| 1019 | - 'wp-element', | |
| 1020 | - 'wp-components', | |
| 1021 | - 'wp-editor', | |
| 1022 | - ], filemtime(plugin_dir_path(__FILE__).'../assets/js/blocks/cbxgooglemap-block.js'), $in_footer); | |
| 1003 | + $googleMap_posts[] = [ | |
| 1004 | + 'label' => esc_html__( 'Select Map', 'cbxgooglemap' ), | |
| 1005 | + 'value' => '0' | |
| 1006 | + ]; | |
| 1023 | 1007 | |
| 1024 | - wp_register_style('cbxgooglemap-block', plugin_dir_url(__FILE__).'../assets/css/cbxgooglemap-block.css', [], filemtime(plugin_dir_path(__FILE__).'../assets/css/cbxgooglemap-block.css')); | |
| 1008 | + foreach ( $query as $key => $data ) { | |
| 1009 | + $googleMap_posts[] = [ | |
| 1010 | + 'label' => esc_html( $data->post_title ), | |
| 1011 | + 'value' => absint( $data->ID ) | |
| 1012 | + ]; | |
| 1013 | + } | |
| 1025 | 1014 | |
| 1026 | - $js_vars = apply_filters('cbxgooglemap_block_js_vars', | |
| 1027 | - [ | |
| 1028 | - 'block_title' => esc_html__('CBX Map: Location Map', 'cbxgooglemap'), | |
| 1029 | - 'block_category' => 'codeboxr', | |
| 1030 | - 'block_icon' => 'universal-access-alt', | |
| 1031 | - 'general_settings' => [ | |
| 1032 | - 'title' => esc_html__('CBX Map Settings', 'cbxgooglemap'), | |
| 1033 | - 'id' => esc_html__('Select Map', 'cbxgooglemap'), | |
| 1034 | - 'id_default' => '', | |
| 1035 | - 'id_options' => $googleMap_posts, | |
| 1036 | - 'id_note' => esc_html__('Choose saved map or create from custom attributes below', 'cbxgooglemap'), | |
| 1037 | - 'custom_attribute_note' => esc_html__('Custom Map Attributes', 'cbxgooglemap'), | |
| 1038 | - 'maptype' => esc_html__('Map Type(Google Map Only)', 'cbxgooglemap'), | |
| 1039 | - 'maptype_options' => CBXGooglemapHelper::maptype_block_options(), | |
| 1040 | - 'lat' => esc_html__('Latitude', 'cbxgooglemap'), | |
| 1041 | - 'lng' => esc_html__('Longitude', 'cbxgooglemap'), | |
| 1042 | - 'width' => esc_html__('Width(Numeric, % allowed)', 'cbxgooglemap'), | |
| 1043 | - 'height' => esc_html__('Height(only Numeric)', 'cbxgooglemap'), | |
| 1044 | - 'zoom' => esc_html__('zoom', 'cbxgooglemap'), | |
| 1045 | - 'scrollwheel' => esc_html__('Mouse Scroll Wheel', 'cbxgooglemap'), | |
| 1046 | - 'showinfo' => esc_html__('Show Popup', 'cbxgooglemap'), | |
| 1047 | - 'infow_open' => esc_html__('Popup Auto Display ', 'cbxgooglemap'), | |
| 1048 | - 'heading' => esc_html__('Popup Heading', 'cbxgooglemap'), | |
| 1049 | - 'address' => esc_html__('Location Address', 'cbxgooglemap'), | |
| 1050 | - 'website' => esc_html__('Website url', 'cbxgooglemap'), | |
| 1051 | - 'mapicon' => esc_html__('Map Icon', 'cbxgooglemap'), | |
| 1052 | - 'mapicon_select' => esc_html__('Select image', 'cbxgooglemap'), | |
| 1053 | - ], | |
| 1054 | - ]); | |
| 1055 | 1015 | |
| 1056 | - wp_localize_script('cbxgooglemap-block', 'cbxgooglemap_block', $js_vars); | |
| 1016 | + wp_register_script( 'cbxgooglemap-block', plugin_dir_url( __FILE__ ) . '../assets/js/blocks/cbxgooglemap-block.js', [ | |
| 1017 | + 'wp-blocks', | |
| 1018 | + 'wp-element', | |
| 1019 | + 'wp-components', | |
| 1020 | + 'wp-editor', | |
| 1021 | + ], filemtime( plugin_dir_path( __FILE__ ) . '../assets/js/blocks/cbxgooglemap-block.js' ), $in_footer ); | |
| 1057 | 1022 | |
| 1058 | - register_block_type('codeboxr/cbxgooglemap', [ | |
| 1059 | - 'editor_script' => 'cbxgooglemap-block', | |
| 1060 | - 'editor_style' => 'cbxgooglemap-block', | |
| 1061 | - 'attributes' => apply_filters('cbxgooglemap_block_attributes', [ | |
| 1062 | - //general | |
| 1063 | - 'id' => [ | |
| 1064 | - 'type' => 'integer', | |
| 1065 | - 'default' => '0', | |
| 1066 | - ], | |
| 1067 | - 'maptype' => [ | |
| 1068 | - 'type' => 'string', | |
| 1069 | - 'default' => $maptype_default | |
| 1070 | - ], | |
| 1071 | - 'lat' => [ | |
| 1072 | - 'type' => 'string', | |
| 1073 | - 'default' => '' | |
| 1074 | - ], | |
| 1075 | - 'lng' => [ | |
| 1076 | - 'type' => 'string', | |
| 1077 | - 'default' => '' | |
| 1078 | - ], | |
| 1079 | - 'width' => [ | |
| 1080 | - 'type' => 'string', | |
| 1081 | - 'default' => $width_default, | |
| 1082 | - ], | |
| 1023 | + wp_register_style( 'cbxgooglemap-block', plugin_dir_url( __FILE__ ) . '../assets/css/cbxgooglemap-block.css', [], | |
| 1024 | + filemtime( plugin_dir_path( __FILE__ ) . '../assets/css/cbxgooglemap-block.css' ) ); | |
| 1083 | 1025 | |
| 1084 | - 'height' => [ | |
| 1085 | - 'type' => 'integer', | |
| 1086 | - 'default' => $height_default | |
| 1087 | - ], | |
| 1088 | - 'zoom' => [ | |
| 1089 | - 'type' => 'string', | |
| 1090 | - 'default' => $zoom_default | |
| 1091 | - ], | |
| 1092 | - 'scrollwheel' => [ | |
| 1093 | - 'type' => 'boolean', | |
| 1094 | - 'default' => ($scrollwheel_default) ? true : false | |
| 1095 | - ], | |
| 1096 | - 'showinfo' => [ | |
| 1097 | - 'type' => 'boolean', | |
| 1098 | - 'default' => ($showinfo_default) ? true : false | |
| 1099 | - ], | |
| 1100 | - 'infow_open' => [ | |
| 1101 | - 'type' => 'boolean', | |
| 1102 | - 'default' => ($infow_open_default) ? true : false | |
| 1103 | - ], | |
| 1104 | - 'heading' => [ | |
| 1105 | - 'type' => 'string', | |
| 1106 | - 'default' => '' | |
| 1107 | - ], | |
| 1108 | - 'address' => [ | |
| 1109 | - 'type' => 'string', | |
| 1110 | - 'default' => '' | |
| 1111 | - ], | |
| 1112 | - 'website' => [ | |
| 1113 | - 'type' => 'string', | |
| 1114 | - 'default' => '' | |
| 1115 | - ], | |
| 1116 | - 'mapicon' => [ | |
| 1117 | - 'type' => 'string', | |
| 1118 | - 'default' => '', | |
| 1119 | - ] | |
| 1120 | - ]), | |
| 1121 | - 'render_callback' => [$this, 'render_block'] | |
| 1122 | - ]); | |
| 1026 | + $js_vars = apply_filters( 'cbxgooglemap_block_js_vars', | |
| 1027 | + [ | |
| 1028 | + 'block_title' => esc_html__( 'CBX Map: Location Map', 'cbxgooglemap' ), | |
| 1029 | + 'block_category' => 'codeboxr', | |
| 1030 | + 'block_icon' => 'universal-access-alt', | |
| 1031 | + 'general_settings' => [ | |
| 1032 | + 'title' => esc_html__( 'CBX Map Settings', 'cbxgooglemap' ), | |
| 1033 | + 'id' => esc_html__( 'Select Map', 'cbxgooglemap' ), | |
| 1034 | + 'id_default' => '', | |
| 1035 | + 'id_options' => $googleMap_posts, | |
| 1036 | + 'id_note' => esc_html__( 'Choose saved map or create from custom attributes below', 'cbxgooglemap' ), | |
| 1037 | + 'custom_attribute_note' => esc_html__( 'Custom Map Attributes', 'cbxgooglemap' ), | |
| 1038 | + 'maptype' => esc_html__( 'Map Type(Google Map Only)', 'cbxgooglemap' ), | |
| 1039 | + 'maptype_options' => CBXGooglemapHelper::maptype_block_options(), | |
| 1040 | + 'lat' => esc_html__( 'Latitude', 'cbxgooglemap' ), | |
| 1041 | + 'lng' => esc_html__( 'Longitude', 'cbxgooglemap' ), | |
| 1042 | + 'width' => esc_html__( 'Width(Numeric, % allowed)', 'cbxgooglemap' ), | |
| 1043 | + 'height' => esc_html__( 'Height(only Numeric)', 'cbxgooglemap' ), | |
| 1044 | + 'zoom' => esc_html__( 'zoom', 'cbxgooglemap' ), | |
| 1045 | + 'scrollwheel' => esc_html__( 'Mouse Scroll Wheel', 'cbxgooglemap' ), | |
| 1046 | + 'showinfo' => esc_html__( 'Show Popup', 'cbxgooglemap' ), | |
| 1047 | + 'infow_open' => esc_html__( 'Popup Auto Display ', 'cbxgooglemap' ), | |
| 1048 | + 'heading' => esc_html__( 'Popup Heading', 'cbxgooglemap' ), | |
| 1049 | + 'address' => esc_html__( 'Location Address', 'cbxgooglemap' ), | |
| 1050 | + 'website' => esc_html__( 'Website url', 'cbxgooglemap' ), | |
| 1051 | + 'mapicon' => esc_html__( 'Map Icon', 'cbxgooglemap' ), | |
| 1052 | + 'mapicon_select' => esc_html__( 'Select image', 'cbxgooglemap' ), | |
| 1053 | + ], | |
| 1054 | + ] ); | |
| 1123 | 1055 | |
| 1124 | - }//end gutenberg_blocks | |
| 1056 | + wp_localize_script( 'cbxgooglemap-block', 'cbxgooglemap_block', $js_vars ); | |
| 1125 | 1057 | |
| 1126 | - /** | |
| 1127 | - * Getenberg server side render | |
| 1128 | - * | |
| 1129 | - * @param $settings | |
| 1130 | - * | |
| 1131 | - * @return string | |
| 1132 | - */ | |
| 1133 | - public function render_block($attributes) | |
| 1134 | - { | |
| 1135 | - $settings = $this->settings; | |
| 1136 | - //$general_settings = get_option( 'cbxgooglemap_general', [] ); | |
| 1058 | + register_block_type( 'codeboxr/cbxgooglemap', [ | |
| 1059 | + 'editor_script' => 'cbxgooglemap-block', | |
| 1060 | + 'editor_style' => 'cbxgooglemap-block', | |
| 1061 | + 'attributes' => apply_filters( 'cbxgooglemap_block_attributes', [ | |
| 1062 | + //general | |
| 1063 | + 'id' => [ | |
| 1064 | + 'type' => 'integer', | |
| 1065 | + 'default' => '0', | |
| 1066 | + ], | |
| 1067 | + 'maptype' => [ | |
| 1068 | + 'type' => 'string', | |
| 1069 | + 'default' => $maptype_default | |
| 1070 | + ], | |
| 1071 | + 'lat' => [ | |
| 1072 | + 'type' => 'string', | |
| 1073 | + 'default' => '' | |
| 1074 | + ], | |
| 1075 | + 'lng' => [ | |
| 1076 | + 'type' => 'string', | |
| 1077 | + 'default' => '' | |
| 1078 | + ], | |
| 1079 | + 'width' => [ | |
| 1080 | + 'type' => 'string', | |
| 1081 | + 'default' => $width_default, | |
| 1082 | + ], | |
| 1137 | 1083 | |
| 1138 | - $api_key = $settings->get_field('apikey', 'cbxgooglemap_general', ''); | |
| 1139 | - $map_source = (int) $settings->get_field( 'mapsource', 'cbxgooglemap_general', 1 ); | |
| 1084 | + 'height' => [ | |
| 1085 | + 'type' => 'integer', | |
| 1086 | + 'default' => $height_default | |
| 1087 | + ], | |
| 1088 | + 'zoom' => [ | |
| 1089 | + 'type' => 'string', | |
| 1090 | + 'default' => $zoom_default | |
| 1091 | + ], | |
| 1092 | + 'scrollwheel' => [ | |
| 1093 | + 'type' => 'boolean', | |
| 1094 | + 'default' => ( $scrollwheel_default ) ? true : false | |
| 1095 | + ], | |
| 1096 | + 'showinfo' => [ | |
| 1097 | + 'type' => 'boolean', | |
| 1098 | + 'default' => ( $showinfo_default ) ? true : false | |
| 1099 | + ], | |
| 1100 | + 'infow_open' => [ | |
| 1101 | + 'type' => 'boolean', | |
| 1102 | + 'default' => ( $infow_open_default ) ? true : false | |
| 1103 | + ], | |
| 1104 | + 'heading' => [ | |
| 1105 | + 'type' => 'string', | |
| 1106 | + 'default' => '' | |
| 1107 | + ], | |
| 1108 | + 'address' => [ | |
| 1109 | + 'type' => 'string', | |
| 1110 | + 'default' => '' | |
| 1111 | + ], | |
| 1112 | + 'website' => [ | |
| 1113 | + 'type' => 'string', | |
| 1114 | + 'default' => '' | |
| 1115 | + ], | |
| 1116 | + 'mapicon' => [ | |
| 1117 | + 'type' => 'string', | |
| 1118 | + 'default' => '', | |
| 1119 | + ] | |
| 1120 | + ] ), | |
| 1121 | + 'render_callback' => [ $this, 'render_block' ] | |
| 1122 | + ] ); | |
| 1140 | 1123 | |
| 1141 | - if ($map_source == 1 && $api_key == '') { | |
| 1142 | - echo '<p style="text-align: center;">'.esc_html__('Google Map Api Key is invalid!', 'cbxgooglemap').'</p>'; | |
| 1143 | - } else { | |
| 1144 | - $id = isset($attributes['id']) ? absint($attributes['id']) : 0; | |
| 1124 | + }//end gutenberg_blocks | |
| 1145 | 1125 | |
| 1146 | - if ($id > 0) { | |
| 1147 | - //render map from saved map | |
| 1148 | - return '[cbxgooglemap id="'.$id.'"]'; | |
| 1149 | - } else { | |
| 1150 | - $attr = []; | |
| 1126 | + /** | |
| 1127 | + * Getenberg server side render | |
| 1128 | + * | |
| 1129 | + * @param $settings | |
| 1130 | + * | |
| 1131 | + * @return string | |
| 1132 | + */ | |
| 1133 | + public function render_block( $attributes ) { | |
| 1134 | + $settings = $this->settings; | |
| 1135 | + //$general_settings = get_option( 'cbxgooglemap_general', [] ); | |
| 1151 | 1136 | |
| 1152 | - if (isset($attributes['lat'])) { | |
| 1153 | - $attr['lat'] = sanitize_text_field(wp_unslash($attributes['lat'])); | |
| 1154 | - } | |
| 1137 | + $api_key = $settings->get_field( 'apikey', 'cbxgooglemap_general', '' ); | |
| 1138 | + $map_source = (int) $settings->get_field( 'mapsource', 'cbxgooglemap_general', 1 ); | |
| 1155 | 1139 | |
| 1156 | - if (isset($attributes['lng'])) { | |
| 1157 | - $attr['lng'] = sanitize_text_field(wp_unslash($attributes['lng'])); | |
| 1158 | - } | |
| 1140 | + if ( $map_source == 1 && $api_key == '' ) { | |
| 1141 | + echo '<p style="text-align: center;">' . esc_html__( 'Google Map Api Key is invalid!', 'cbxgooglemap' ) . '</p>'; | |
| 1142 | + } else { | |
| 1143 | + $id = isset( $attributes['id'] ) ? absint( $attributes['id'] ) : 0; | |
| 1159 | 1144 | |
| 1160 | - if (isset($attributes['width'])) { | |
| 1161 | - $attr['width'] = sanitize_text_field($attributes['width']); | |
| 1162 | - } | |
| 1145 | + if ( $id > 0 ) { | |
| 1146 | + //render map from saved map | |
| 1147 | + return '[cbxgooglemap id="' . $id . '"]'; | |
| 1148 | + } else { | |
| 1149 | + $attr = []; | |
| 1163 | 1150 | |
| 1164 | - if (isset($attributes['height'])) { | |
| 1165 | - $attr['height'] = (int) $attributes['height']; | |
| 1166 | - } | |
| 1151 | + if ( isset( $attributes['lat'] ) ) { | |
| 1152 | + $attr['lat'] = sanitize_text_field( wp_unslash( $attributes['lat'] ) ); | |
| 1153 | + } | |
| 1167 | 1154 | |
| 1168 | - if (isset($attributes['zoom'])) { | |
| 1169 | - $attr['zoom'] = sanitize_text_field($attributes['zoom']); | |
| 1170 | - } | |
| 1155 | + if ( isset( $attributes['lng'] ) ) { | |
| 1156 | + $attr['lng'] = sanitize_text_field( wp_unslash( $attributes['lng'] ) ); | |
| 1157 | + } | |
| 1171 | 1158 | |
| 1159 | + if ( isset( $attributes['width'] ) ) { | |
| 1160 | + $attr['width'] = sanitize_text_field( $attributes['width'] ); | |
| 1161 | + } | |
| 1172 | 1162 | |
| 1173 | - $attr['scrollwheel'] = ! empty($attributes['scrollwheel']) ? 1 : 0; | |
| 1174 | - $attr['infow_open'] = ! empty($attributes['infow_open']) ? 1 : 0; | |
| 1175 | - $attr['showinfo'] = ! empty($attributes['showinfo']) ? 1 : 0; | |
| 1163 | + if ( isset( $attributes['height'] ) ) { | |
| 1164 | + $attr['height'] = (int) $attributes['height']; | |
| 1165 | + } | |
| 1176 | 1166 | |
| 1177 | - if (isset($attributes['heading'])) { | |
| 1178 | - $attr['heading'] = sanitize_text_field(wp_unslash($attributes['heading'])); | |
| 1179 | - } | |
| 1180 | - if (isset($attributes['address'])) { | |
| 1181 | - $attr['address'] = sanitize_text_field(wp_unslash($attributes['address'])); | |
| 1182 | - } | |
| 1183 | - if (isset($attributes['website'])) { | |
| 1184 | - $attr['website'] = sanitize_text_field(wp_unslash($attributes['website'])); | |
| 1185 | - } | |
| 1186 | - if (isset($attributes['maptype'])) { | |
| 1187 | - $attr['maptype'] = sanitize_text_field(wp_unslash($attributes['maptype'])); | |
| 1188 | - } | |
| 1189 | - if (isset($attributes['mapicon'])) { | |
| 1190 | - $attr['mapicon'] = esc_url($attributes['mapicon']); | |
| 1191 | - } | |
| 1167 | + if ( isset( $attributes['zoom'] ) ) { | |
| 1168 | + $attr['zoom'] = sanitize_text_field( $attributes['zoom'] ); | |
| 1169 | + } | |
| 1192 | 1170 | |
| 1193 | - $attr = apply_filters('cbxgooglemap_block_shortcode_builder_attr', $attr, $attributes); | |
| 1194 | 1171 | |
| 1195 | - $attr_html = ''; | |
| 1172 | + $attr['scrollwheel'] = ! empty( $attributes['scrollwheel'] ) ? 1 : 0; | |
| 1173 | + $attr['infow_open'] = ! empty( $attributes['infow_open'] ) ? 1 : 0; | |
| 1174 | + $attr['showinfo'] = ! empty( $attributes['showinfo'] ) ? 1 : 0; | |
| 1196 | 1175 | |
| 1197 | - foreach ($attr as $key => $value) { | |
| 1198 | - $attr_html .= ' '.$key.'="'.$value.'" '; | |
| 1199 | - } | |
| 1176 | + if ( isset( $attributes['heading'] ) ) { | |
| 1177 | + $attr['heading'] = sanitize_text_field( wp_unslash( $attributes['heading'] ) ); | |
| 1178 | + } | |
| 1179 | + if ( isset( $attributes['address'] ) ) { | |
| 1180 | + $attr['address'] = sanitize_text_field( wp_unslash( $attributes['address'] ) ); | |
| 1181 | + } | |
| 1182 | + if ( isset( $attributes['website'] ) ) { | |
| 1183 | + $attr['website'] = sanitize_text_field( wp_unslash( $attributes['website'] ) ); | |
| 1184 | + } | |
| 1185 | + if ( isset( $attributes['maptype'] ) ) { | |
| 1186 | + $attr['maptype'] = sanitize_text_field( wp_unslash( $attributes['maptype'] ) ); | |
| 1187 | + } | |
| 1188 | + if ( isset( $attributes['mapicon'] ) ) { | |
| 1189 | + $attr['mapicon'] = esc_url( $attributes['mapicon'] ); | |
| 1190 | + } | |
| 1200 | 1191 | |
| 1201 | - //return do_shortcode( '[cbxgooglemap ' . $attr_html . ']' ); | |
| 1202 | - return '[cbxgooglemap '.$attr_html.']'; | |
| 1203 | - } | |
| 1204 | - }//end if api keys are ok | |
| 1192 | + $attr = apply_filters( 'cbxgooglemap_block_shortcode_builder_attr', $attr, $attributes ); | |
| 1205 | 1193 | |
| 1206 | - }//end codeboxrflexiblecountdown_block_render | |
| 1194 | + $attr_html = ''; | |
| 1207 | 1195 | |
| 1208 | - /** | |
| 1209 | - * Register New Gutenberg block Category if need | |
| 1210 | - * | |
| 1211 | - * @param $categories | |
| 1212 | - * @param $post | |
| 1213 | - * | |
| 1214 | - * @return mixed | |
| 1215 | - */ | |
| 1216 | - public function gutenberg_block_categories($categories, $post) | |
| 1217 | - { | |
| 1218 | - $found = false; | |
| 1219 | - foreach ($categories as $category) { | |
| 1220 | - if ($category['slug'] == 'codeboxr') { | |
| 1221 | - $found = true; | |
| 1222 | - break; | |
| 1223 | - } | |
| 1224 | - } | |
| 1196 | + foreach ( $attr as $key => $value ) { | |
| 1197 | + $attr_html .= ' ' . $key . '="' . $value . '" '; | |
| 1198 | + } | |
| 1225 | 1199 | |
| 1226 | - if ( ! $found) { | |
| 1227 | - return array_merge( | |
| 1228 | - $categories, | |
| 1229 | - [ | |
| 1230 | - [ | |
| 1231 | - 'slug' => 'codeboxr', | |
| 1232 | - 'title' => esc_html__('CBX Blocks', 'cbxgooglemap'), | |
| 1233 | - ], | |
| 1234 | - ] | |
| 1235 | - ); | |
| 1236 | - } | |
| 1200 | + //return do_shortcode( '[cbxgooglemap ' . $attr_html . ']' ); | |
| 1201 | + return '[cbxgooglemap ' . $attr_html . ']'; | |
| 1202 | + } | |
| 1203 | + }//end if api keys are ok | |
| 1237 | 1204 | |
| 1238 | - return $categories; | |
| 1239 | - }//end gutenberg_block_categories | |
| 1205 | + }//end codeboxrflexiblecountdown_block_render | |
| 1240 | 1206 | |
| 1207 | + /** | |
| 1208 | + * Register New Gutenberg block Category if need | |
| 1209 | + * | |
| 1210 | + * @param $categories | |
| 1211 | + * @param $post | |
| 1212 | + * | |
| 1213 | + * @return mixed | |
| 1214 | + */ | |
| 1215 | + public function gutenberg_block_categories( $categories, $post ) { | |
| 1216 | + $found = false; | |
| 1217 | + foreach ( $categories as $category ) { | |
| 1218 | + if ( $category['slug'] == 'codeboxr' ) { | |
| 1219 | + $found = true; | |
| 1220 | + break; | |
| 1221 | + } | |
| 1222 | + } | |
| 1241 | 1223 | |
| 1242 | - /** | |
| 1243 | - * Enqueue style for block editor | |
| 1244 | - */ | |
| 1245 | - public function enqueue_block_editor_assets() | |
| 1246 | - { | |
| 1247 | - }//end enqueue_block_editor_assets | |
| 1224 | + if ( ! $found ) { | |
| 1225 | + return array_merge( | |
| 1226 | + $categories, | |
| 1227 | + [ | |
| 1228 | + [ | |
| 1229 | + 'slug' => 'codeboxr', | |
| 1230 | + 'title' => esc_html__( 'CBX Blocks', 'cbxgooglemap' ), | |
| 1231 | + ], | |
| 1232 | + ] | |
| 1233 | + ); | |
| 1234 | + } | |
| 1248 | 1235 | |
| 1249 | - /** | |
| 1250 | - * Load setting html | |
| 1251 | - * | |
| 1252 | - * @return void | |
| 1253 | - */ | |
| 1254 | - public function settings_reset_load() | |
| 1255 | - { | |
| 1256 | - //security check | |
| 1257 | - check_ajax_referer('cbxgooglemap_nonce', 'security'); | |
| 1236 | + return $categories; | |
| 1237 | + }//end gutenberg_block_categories | |
| 1258 | 1238 | |
| 1259 | - $msg = []; | |
| 1260 | - $msg['html'] = ''; | |
| 1261 | - $msg['message'] = esc_html__('CBX Google Map reset setting html loaded successfully', 'cbxgooglemap'); | |
| 1262 | - $msg['success'] = 1; | |
| 1263 | 1239 | |
| 1264 | - if ( ! current_user_can('manage_options')) { | |
| 1265 | - $msg['message'] = esc_html__('Sorry, you don\'t have enough permission', 'cbxgooglemap'); | |
| 1266 | - $msg['success'] = 0; | |
| 1267 | - wp_send_json($msg); | |
| 1268 | - } | |
| 1240 | + /** | |
| 1241 | + * Enqueue style for block editor | |
| 1242 | + */ | |
| 1243 | + public function enqueue_block_editor_assets() { | |
| 1244 | + }//end enqueue_block_editor_assets | |
| 1269 | 1245 | |
| 1270 | - $msg['html'] = CBXGooglemapHelper::setting_reset_html_table(); | |
| 1246 | + /** | |
| 1247 | + * Load setting html | |
| 1248 | + * | |
| 1249 | + * @return void | |
| 1250 | + */ | |
| 1251 | + public function settings_reset_load() { | |
| 1252 | + //security check | |
| 1253 | + check_ajax_referer( 'cbxgooglemap_nonce', 'security' ); | |
| 1271 | 1254 | |
| 1272 | - wp_send_json($msg); | |
| 1273 | - } //end method settings_reset_load | |
| 1255 | + $msg = []; | |
| 1256 | + $msg['html'] = ''; | |
| 1257 | + $msg['message'] = esc_html__( 'CBX Google Map reset setting html loaded successfully', 'cbxgooglemap' ); | |
| 1258 | + $msg['success'] = 1; | |
| 1274 | 1259 | |
| 1275 | - /** | |
| 1276 | - * Full plugin reset and redirect | |
| 1277 | - */ | |
| 1278 | - public function plugin_options_reset() | |
| 1279 | - { | |
| 1260 | + if ( ! current_user_can( 'manage_options' ) ) { | |
| 1261 | + $msg['message'] = esc_html__( 'Sorry, you don\'t have enough permission', 'cbxgooglemap' ); | |
| 1262 | + $msg['success'] = 0; | |
| 1263 | + wp_send_json( $msg ); | |
| 1264 | + } | |
| 1280 | 1265 | |
| 1281 | - //security check | |
| 1282 | - check_ajax_referer('cbxgooglemap_nonce', 'security'); | |
| 1266 | + $msg['html'] = CBXGooglemapHelper::setting_reset_html_table(); | |
| 1283 | 1267 | |
| 1284 | - $url = admin_url('admin.php?page=cbxgooglemap_settings'); | |
| 1268 | + wp_send_json( $msg ); | |
| 1269 | + } //end method settings_reset_load | |
| 1285 | 1270 | |
| 1286 | - $msg = []; | |
| 1287 | - $msg['message'] = esc_html__('CBX Google Map setting options reset successfully', 'cbxgooglemap'); | |
| 1288 | - $msg['success'] = 1; | |
| 1289 | - $msg['url'] = $url; | |
| 1271 | + /** | |
| 1272 | + * Full plugin reset and redirect | |
| 1273 | + */ | |
| 1274 | + public function plugin_options_reset() { | |
| 1290 | 1275 | |
| 1291 | - if ( ! current_user_can('manage_options')) { | |
| 1292 | - $msg['message'] = esc_html__('Sorry, you don\'t have enough permission', 'cbxgooglemap'); | |
| 1293 | - $msg['success'] = 0; | |
| 1294 | - wp_send_json($msg); | |
| 1295 | - } | |
| 1276 | + //security check | |
| 1277 | + check_ajax_referer( 'cbxgooglemap_nonce', 'security' ); | |
| 1296 | 1278 | |
| 1297 | - do_action('cbxgooglemap_plugin_reset_before'); | |
| 1279 | + $url = admin_url( 'admin.php?page=cbxgooglemap_settings' ); | |
| 1298 | 1280 | |
| 1299 | - $plugin_resets = wp_unslash($_POST); // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing | |
| 1281 | + $msg = []; | |
| 1282 | + $msg['message'] = esc_html__( 'CBX Google Map setting options reset successfully', 'cbxgooglemap' ); | |
| 1283 | + $msg['success'] = 1; | |
| 1284 | + $msg['url'] = $url; | |
| 1300 | 1285 | |
| 1301 | - //delete options | |
| 1302 | - $reset_options = isset($plugin_resets['reset_options']) ? $plugin_resets['reset_options'] : []; | |
| 1303 | - $option_values = (is_array($reset_options) && sizeof($reset_options) > 0) ? array_values($reset_options) : array_values(CBXGooglemapHelper::getAllOptionNames()); | |
| 1286 | + if ( ! current_user_can( 'manage_options' ) ) { | |
| 1287 | + $msg['message'] = esc_html__( 'Sorry, you don\'t have enough permission', 'cbxgooglemap' ); | |
| 1288 | + $msg['success'] = 0; | |
| 1289 | + wp_send_json( $msg ); | |
| 1290 | + } | |
| 1304 | 1291 | |
| 1305 | - foreach ($option_values as $key => $option) { | |
| 1306 | - delete_option($option); | |
| 1307 | - } | |
| 1292 | + do_action( 'cbxgooglemap_plugin_reset_before' ); | |
| 1308 | 1293 | |
| 1309 | - do_action('cbxgooglemap_plugin_option_delete'); | |
| 1310 | - do_action('cbxgooglemap_plugin_reset_after'); | |
| 1311 | - do_action('cbxgooglemap_plugin_reset'); | |
| 1294 | + $plugin_resets = wp_unslash( $_POST ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing | |
| 1312 | 1295 | |
| 1313 | - wp_send_json($msg); | |
| 1314 | - } //end plugin_reset | |
| 1296 | + //delete options | |
| 1297 | + $reset_options = isset( $plugin_resets['reset_options'] ) ? $plugin_resets['reset_options'] : []; | |
| 1298 | + $option_values = ( is_array( $reset_options ) && sizeof( $reset_options ) > 0 ) ? array_values( $reset_options ) : array_values( CBXGooglemapHelper::getAllOptionNames() ); | |
| 1315 | 1299 | |
| 1316 | - /** | |
| 1317 | - * Export plugin global settings | |
| 1318 | - * | |
| 1319 | - * @return void | |
| 1320 | - */ | |
| 1321 | - public function settings_export() | |
| 1322 | - { | |
| 1300 | + foreach ( $option_values as $key => $option ) { | |
| 1301 | + delete_option( $option ); | |
| 1302 | + } | |
| 1323 | 1303 | |
| 1324 | - if (isset($_GET['cbxgooglemap_settings_export'])) { | |
| 1325 | - $url = admin_url('admin.php?page=cbxgooglemap_settings'); | |
| 1304 | + do_action( 'cbxgooglemap_plugin_option_delete' ); | |
| 1305 | + do_action( 'cbxgooglemap_plugin_reset_after' ); | |
| 1306 | + do_action( 'cbxgooglemap_plugin_reset' ); | |
| 1326 | 1307 | |
| 1327 | - $msg = []; | |
| 1328 | - $msg['message'] = esc_html__('Google Map setting exported successfully', 'cbxgooglemap'); | |
| 1329 | - $msg['success'] = 1; | |
| 1330 | - $msg['url'] = $url; | |
| 1308 | + wp_send_json( $msg ); | |
| 1309 | + } //end plugin_reset | |
| 1331 | 1310 | |
| 1332 | - $passed = true; | |
| 1311 | + /** | |
| 1312 | + * Export plugin global settings | |
| 1313 | + * | |
| 1314 | + * @return void | |
| 1315 | + */ | |
| 1316 | + public function settings_export() { | |
| 1333 | 1317 | |
| 1334 | - $nonce = isset($_GET['security']) ? sanitize_text_field(wp_unslash($_GET['security'])) : ''; | |
| 1335 | - if ( ! wp_verify_nonce($nonce, 'cbxgooglemap_settings_nonce')) { | |
| 1336 | - $passed = false; | |
| 1337 | - $msg['success'] = 0; | |
| 1338 | - $msg['message'] = esc_html__('Security check failed', 'cbxgooglemap'); | |
| 1339 | - } | |
| 1318 | + if ( isset( $_GET['cbxgooglemap_settings_export'] ) ) { | |
| 1319 | + $url = admin_url( 'admin.php?page=cbxgooglemap_settings' ); | |
| 1340 | 1320 | |
| 1341 | - if ( ! current_user_can('manage_options')) { | |
| 1342 | - $passed = true; | |
| 1343 | - $msg['message'] = esc_html__('Sorry, you don\'t have enough permission', 'cbxgooglemap'); | |
| 1344 | - $msg['success'] = 0; | |
| 1345 | - } | |
| 1321 | + $msg = []; | |
| 1322 | + $msg['message'] = esc_html__( 'Google Map setting exported successfully', 'cbxgooglemap' ); | |
| 1323 | + $msg['success'] = 1; | |
| 1324 | + $msg['url'] = $url; | |
| 1346 | 1325 | |
| 1347 | - if ( ! $passed) { | |
| 1348 | - wp_send_json($msg); | |
| 1349 | - } | |
| 1326 | + $passed = true; | |
| 1350 | 1327 | |
| 1351 | - // Get Meta box data | |
| 1352 | - $sections = CBXGoogleMapAdmin::get_settings_sections(); | |
| 1328 | + $nonce = isset( $_GET['security'] ) ? sanitize_text_field( wp_unslash( $_GET['security'] ) ) : ''; | |
| 1329 | + if ( ! wp_verify_nonce( $nonce, 'cbxgooglemap_settings_nonce' ) ) { | |
| 1330 | + $passed = false; | |
| 1331 | + $msg['success'] = 0; | |
| 1332 | + $msg['message'] = esc_html__( 'Security check failed', 'cbxgooglemap' ); | |
| 1333 | + } | |
| 1353 | 1334 | |
| 1354 | - $data = [ | |
| 1355 | - 'cbxgooglemap_settings' => true | |
| 1356 | - ]; | |
| 1335 | + if ( ! current_user_can( 'manage_options' ) ) { | |
| 1336 | + $passed = true; | |
| 1337 | + $msg['message'] = esc_html__( 'Sorry, you don\'t have enough permission', 'cbxgooglemap' ); | |
| 1338 | + $msg['success'] = 0; | |
| 1339 | + } | |
| 1357 | 1340 | |
| 1358 | - $single_section = isset($_REQUEST['section']) ? sanitize_text_field(wp_unslash($_REQUEST['section'])) : ''; | |
| 1341 | + if ( ! $passed ) { | |
| 1342 | + wp_send_json( $msg ); | |
| 1343 | + } | |
| 1359 | 1344 | |
| 1360 | - foreach ($sections as $section) { | |
| 1361 | - if ($single_section != '' && $section['id'] != $single_section) { | |
| 1362 | - continue; | |
| 1363 | - } | |
| 1345 | + // Get Meta box data | |
| 1346 | + $sections = CBXGoogleMapAdmin::get_settings_sections(); | |
| 1364 | 1347 | |
| 1348 | + $data = [ | |
| 1349 | + 'cbxgooglemap_settings' => true | |
| 1350 | + ]; | |
| 1365 | 1351 | |
| 1366 | - $sections_fields = get_option($section['id']); | |
| 1367 | - if ( ! is_array($sections_fields)) { | |
| 1368 | - $sections_fields = []; | |
| 1369 | - } | |
| 1352 | + $single_section = isset( $_REQUEST['section'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['section'] ) ) : ''; | |
| 1370 | 1353 | |
| 1371 | - $data[$section['id']] = $sections_fields; | |
| 1354 | + foreach ( $sections as $section ) { | |
| 1355 | + if ( $single_section != '' && $section['id'] != $single_section ) { | |
| 1356 | + continue; | |
| 1357 | + } | |
| 1372 | 1358 | |
| 1373 | - if ($single_section != '' && $section['id'] == $single_section) { | |
| 1374 | - break; | |
| 1375 | - } | |
| 1376 | - } | |
| 1377 | 1359 | |
| 1378 | - // Create JSON | |
| 1379 | - $generate_json = wp_json_encode($data, JSON_PRETTY_PRINT); | |
| 1360 | + $sections_fields = get_option( $section['id'] ); | |
| 1361 | + if ( ! is_array( $sections_fields ) ) { | |
| 1362 | + $sections_fields = []; | |
| 1363 | + } | |
| 1380 | 1364 | |
| 1381 | - // Create filename | |
| 1382 | - $filename = 'cbxgooglemap_settings_json'; | |
| 1365 | + $data[ $section['id'] ] = $sections_fields; | |
| 1383 | 1366 | |
| 1384 | - // Force download .json file with JSON in it | |
| 1385 | - header('Content-type: application/vnd.ms-excel'); | |
| 1386 | - header('Content-Type: application/force-download'); | |
| 1387 | - header('Content-Type: application/download'); | |
| 1388 | - header('Content-disposition: '.$filename.'.json'); | |
| 1389 | - header('Content-disposition: filename='.$filename.'.json'); | |
| 1367 | + if ( $single_section != '' && $section['id'] == $single_section ) { | |
| 1368 | + break; | |
| 1369 | + } | |
| 1370 | + } | |
| 1390 | 1371 | |
| 1391 | - print $generate_json;//phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped | |
| 1392 | - exit; | |
| 1393 | - }//end if export mode | |
| 1394 | - }//end method settings_export | |
| 1372 | + // Create JSON | |
| 1373 | + $generate_json = wp_json_encode( $data, JSON_PRETTY_PRINT ); | |
| 1395 | 1374 | |
| 1396 | - /** | |
| 1397 | - * Import settings | |
| 1398 | - * | |
| 1399 | - * @return void | |
| 1400 | - */ | |
| 1401 | - public function settings_import() | |
| 1402 | - { | |
| 1403 | - //security check | |
| 1404 | - check_ajax_referer('cbxgooglemap_nonce', 'security'); | |
| 1375 | + // Create filename | |
| 1376 | + $filename = 'cbxgooglemap_settings_json'; | |
| 1405 | 1377 | |
| 1406 | - $msg = []; | |
| 1407 | - $msg['message'] = esc_html__('CBX Google Map Settings imported successfully', 'cbxgooglemap'); | |
| 1408 | - $msg['success'] = 1; | |
| 1378 | + // Force download .json file with JSON in it | |
| 1379 | + header( 'Content-type: application/vnd.ms-excel' ); | |
| 1380 | + header( 'Content-Type: application/force-download' ); | |
| 1381 | + header( 'Content-Type: application/download' ); | |
| 1382 | + header( 'Content-disposition: ' . $filename . '.json' ); | |
| 1383 | + header( 'Content-disposition: filename=' . $filename . '.json' ); | |
| 1409 | 1384 | |
| 1410 | - if ( ! current_user_can('manage_options')) { | |
| 1411 | - $msg['message'] = esc_html__('Sorry, you don\'t have enough permission', 'cbxgooglemap'); | |
| 1412 | - $msg['success'] = 0; | |
| 1413 | - wp_send_json($msg); | |
| 1414 | - } | |
| 1385 | + print $generate_json;//phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped | |
| 1386 | + exit; | |
| 1387 | + }//end if export mode | |
| 1388 | + }//end method settings_export | |
| 1415 | 1389 | |
| 1416 | - // Import settings api data | |
| 1417 | - $settings_data = isset($_REQUEST['settings_data']) ? sanitize_text_field(wp_unslash($_REQUEST['settings_data'])) : ''; | |
| 1418 | - $settings_data = str_replace('data:application/json;base64,', '', $settings_data); | |
| 1419 | - $settings_data = base64_decode($settings_data); | |
| 1390 | + /** | |
| 1391 | + * Import settings | |
| 1392 | + * | |
| 1393 | + * @return void | |
| 1394 | + */ | |
| 1395 | + public function settings_import() { | |
| 1396 | + //security check | |
| 1397 | + check_ajax_referer( 'cbxgooglemap_nonce', 'security' ); | |
| 1420 | 1398 | |
| 1421 | - $settings_data = json_decode($settings_data, true); | |
| 1422 | - // Redirect to settings page | |
| 1423 | - $msg['url'] = admin_url('admin.php?page=cbxgooglemap_settings'); | |
| 1399 | + $msg = []; | |
| 1400 | + $msg['message'] = esc_html__( 'CBX Google Map Settings imported successfully', 'cbxgooglemap' ); | |
| 1401 | + $msg['success'] = 1; | |
| 1424 | 1402 | |
| 1425 | - if (isset($settings_data['cbxgooglemap_settings'])) { | |
| 1426 | - unset($settings_data['cbxgooglemap_settings']); | |
| 1403 | + if ( ! current_user_can( 'manage_options' ) ) { | |
| 1404 | + $msg['message'] = esc_html__( 'Sorry, you don\'t have enough permission', 'cbxgooglemap' ); | |
| 1405 | + $msg['success'] = 0; | |
| 1406 | + wp_send_json( $msg ); | |
| 1407 | + } | |
| 1427 | 1408 | |
| 1428 | - if (is_array($settings_data)) { | |
| 1429 | - foreach ($settings_data as $key => $value) { | |
| 1430 | - update_option($key, $value); | |
| 1431 | - } | |
| 1432 | - } | |
| 1433 | - wp_send_json($msg); | |
| 1434 | - } | |
| 1409 | + // Import settings api data | |
| 1410 | + $settings_data = isset( $_REQUEST['settings_data'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['settings_data'] ) ) : ''; | |
| 1411 | + $settings_data = str_replace( 'data:application/json;base64,', '', $settings_data ); | |
| 1412 | + $settings_data = base64_decode( $settings_data ); | |
| 1435 | 1413 | |
| 1436 | - $msg['message'] = esc_html__('Sorry, wrong format data', 'cbxgooglemap'); | |
| 1437 | - $msg['success'] = 0; | |
| 1438 | - wp_send_json($msg); | |
| 1439 | - }//end method settings_import | |
| 1414 | + $settings_data = json_decode( $settings_data, true ); | |
| 1415 | + // Redirect to settings page | |
| 1416 | + $msg['url'] = admin_url( 'admin.php?page=cbxgooglemap_settings' ); | |
| 1440 | 1417 | |
| 1441 | - /** | |
| 1442 | - * Reset single section | |
| 1443 | - * | |
| 1444 | - * @return void | |
| 1445 | - */ | |
| 1446 | - public function plugin_reset_section() | |
| 1447 | - { | |
| 1418 | + if ( isset( $settings_data['cbxgooglemap_settings'] ) ) { | |
| 1419 | + unset( $settings_data['cbxgooglemap_settings'] ); | |
| 1448 | 1420 | |
| 1449 | - //security check | |
| 1450 | - check_ajax_referer('cbxgooglemap_nonce', 'security'); | |
| 1421 | + if ( is_array( $settings_data ) ) { | |
| 1422 | + foreach ( $settings_data as $key => $value ) { | |
| 1423 | + update_option( $key, $value ); | |
| 1424 | + } | |
| 1425 | + } | |
| 1426 | + wp_send_json( $msg ); | |
| 1427 | + } | |
| 1451 | 1428 | |
| 1452 | - $url = admin_url('admin.php?page=cbxgooglemap_settings'); | |
| 1429 | + $msg['message'] = esc_html__( 'Sorry, wrong format data', 'cbxgooglemap' ); | |
| 1430 | + $msg['success'] = 0; | |
| 1431 | + wp_send_json( $msg ); | |
| 1432 | + }//end method settings_import | |
| 1453 | 1433 | |
| 1454 | - $msg = []; | |
| 1455 | - $msg['message'] = esc_html__('Comfort Google Map setting section reset successfully', 'cbxgooglemap'); | |
| 1456 | - $msg['success'] = 1; | |
| 1457 | - $msg['url'] = $url; | |
| 1434 | + /** | |
| 1435 | + * Reset single section | |
| 1436 | + * | |
| 1437 | + * @return void | |
| 1438 | + */ | |
| 1439 | + public function plugin_reset_section() { | |
| 1458 | 1440 | |
| 1459 | - if ( ! current_user_can('manage_options')) { | |
| 1460 | - $msg['message'] = esc_html__('Sorry, you don\'t have enough permission', 'cbxgooglemap'); | |
| 1461 | - $msg['success'] = 0; | |
| 1462 | - wp_send_json($msg); | |
| 1463 | - } | |
| 1441 | + //security check | |
| 1442 | + check_ajax_referer( 'cbxgooglemap_nonce', 'security' ); | |
| 1464 | 1443 | |
| 1465 | - $section = isset($_POST['section']) ? sanitize_text_field(wp_unslash($_POST['section'])) : ''; | |
| 1466 | - if ($section == '') { | |
| 1467 | - $msg['message'] = esc_html__('Option section setting failed, as no section id is empty', 'cbxgooglemap'); | |
| 1468 | - $msg['success'] = 0; | |
| 1469 | - wp_send_json($msg); | |
| 1470 | - } | |
| 1444 | + $url = admin_url( 'admin.php?page=cbxgooglemap_settings' ); | |
| 1471 | 1445 | |
| 1472 | - //before hooks | |
| 1473 | - do_action('cbxgooglemap_plugin_reset_section_before'); | |
| 1446 | + $msg = []; | |
| 1447 | + $msg['message'] = esc_html__( 'Comfort Google Map setting section reset successfully', 'cbxgooglemap' ); | |
| 1448 | + $msg['success'] = 1; | |
| 1449 | + $msg['url'] = $url; | |
| 1474 | 1450 | |
| 1451 | + if ( ! current_user_can( 'manage_options' ) ) { | |
| 1452 | + $msg['message'] = esc_html__( 'Sorry, you don\'t have enough permission', 'cbxgooglemap' ); | |
| 1453 | + $msg['success'] = 0; | |
| 1454 | + wp_send_json( $msg ); | |
| 1455 | + } | |
| 1475 | 1456 | |
| 1476 | - //delete the section | |
| 1477 | - delete_option($section); | |
| 1457 | + $section = isset( $_POST['section'] ) ? sanitize_text_field( wp_unslash( $_POST['section'] ) ) : ''; | |
| 1458 | + if ( $section == '' ) { | |
| 1459 | + $msg['message'] = esc_html__( 'Option section setting failed, as no section id is empty', 'cbxgooglemap' ); | |
| 1460 | + $msg['success'] = 0; | |
| 1461 | + wp_send_json( $msg ); | |
| 1462 | + } | |
| 1478 | 1463 | |
| 1479 | - //after hoooks | |
| 1480 | - do_action('cbxgooglemap_plugin_reset_section_after'); | |
| 1481 | - do_action('cbxgooglemap_plugin_reset_section'); | |
| 1464 | + //before hooks | |
| 1465 | + do_action( 'cbxgooglemap_plugin_reset_section_before' ); | |
| 1482 | 1466 | |
| 1483 | - wp_send_json($msg); | |
| 1484 | - }//end method plugin_reset_section | |
| 1467 | + | |
| 1468 | + //delete the section | |
| 1469 | + delete_option( $section ); | |
| 1470 | + | |
| 1471 | + //after hoooks | |
| 1472 | + do_action( 'cbxgooglemap_plugin_reset_section_after' ); | |
| 1473 | + do_action( 'cbxgooglemap_plugin_reset_section' ); | |
| 1474 | + | |
| 1475 | + wp_send_json( $msg ); | |
| 1476 | + }//end method plugin_reset_section | |
| 1485 | 1477 | }//end class CBXGoogleMapAdmin |