WC_Flespakket_Settings

The WordPress Core WC Flespakket Settings class.

Defined (1)

The class is defined in the following location(s).

/includes/wcflespakket-settings.php  
  1. class WC_Flespakket_Settings { 
  2.  
  3. public function __construct() { 
  4. add_action( 'admin_menu', array( &$this, 'menu' ) ); // Add menu. 
  5. add_action( 'admin_init', array( &$this, 'init_settings' ) ); // Registers settings 
  6.  
  7. public function menu() { 
  8. add_options_page( 
  9. __( 'Flespakket', 'wcflespakket' ),  
  10. __( 'Flespakket', 'wcflespakket' ),  
  11. 'manage_options',  
  12. 'wcflespakket',  
  13. array( $this, 'settings_page' ) 
  14. );  
  15.  
  16. public function settings_page() { 
  17. ?> 
  18.  
  19. <div class="wrap"> 
  20. <div class="icon32" id="icon-options-general"><br /></div> 
  21. <h2><?php _e( 'WooCommerce Flespakket instellingen', 'wcflespakket' ); ?></h2> 
  22.  
  23.  
  24. <form method="post" action="options.php"> 
  25. <?php 
  26. settings_fields( 'wcflespakket_settings' ); 
  27. do_settings_sections( 'wcflespakket_settings' ); 
  28.  
  29. submit_button(); 
  30. ?> 
  31.  
  32. </form> 
  33.  
  34. </div> 
  35.  
  36. <?php 
  37.  
  38. /** 
  39. * User settings. 
  40. */ 
  41.  
  42. public function init_settings() { 
  43. $option = 'wcflespakket_settings'; 
  44.  
  45. // Create option in wp_options. 
  46. if ( false == get_option( $option ) ) { 
  47. add_option( $option ); 
  48.  
  49. // Section. 
  50. add_settings_section( 
  51. 'general',  
  52. __( 'Algemene instellingen', 'wcflespakket' ),  
  53. array( &$this, 'section_options_callback' ),  
  54. $option 
  55. ); 
  56.  
  57. add_settings_field( 
  58. 'api_username',  
  59. __( 'Gebruikersnaam', 'wcflespakket' ),  
  60. array( &$this, 'text_element_callback' ),  
  61. $option,  
  62. 'general',  
  63. array( 
  64. 'menu' => $option,  
  65. 'id' => 'api_username',  
  66. 'size' => '50',  
  67. //'description' => __( 'Uw Flespakket gebruikersnaam', 'wcflespakket' ),  
  68. ); 
  69.  
  70. add_settings_field( 
  71. 'api_key',  
  72. __( 'API key', 'wcflespakket' ),  
  73. array( &$this, 'text_element_callback' ),  
  74. $option,  
  75. 'general',  
  76. array( 
  77. 'menu' => $option,  
  78. 'id' => 'api_key',  
  79. 'size' => '50',  
  80. 'description' => __( 'Uw API key, deze dient u eerst <a href="mailto:info@flespakket.nl">aan te vragen bij Flespakket</a>', 'wcflespakket' ),  
  81. ); 
  82.  
  83. add_settings_field( 
  84. 'download_display',  
  85. __( 'Labelweergave', 'wpo_wcpdf' ),  
  86. array( &$this, 'radio_element_callback' ),  
  87. $option,  
  88. 'general',  
  89. array( 
  90. 'menu' => $option,  
  91. 'id' => 'download_display',  
  92. 'options' => array( 
  93. 'download' => __( 'Download PDF' , 'wcflespakket' ),  
  94. 'display' => __( 'Open de PDF in een nieuw venster/tab' , 'wcflespakket' ),  
  95. ),  
  96. ); 
  97.  
  98. add_settings_field( 
  99. 'auto_complete',  
  100. __( 'Zet orders automatisch op voltooid na (succesvolle) Flespakket export', 'wcflespakket' ),  
  101. array( &$this, 'checkbox_element_callback' ),  
  102. $option,  
  103. 'general',  
  104. array( 
  105. 'menu' => $option,  
  106. 'id' => 'auto_complete',  
  107. 'description' => __( 'Zorg dat <strong>Verwerk labels direct</strong> staat ingeschakeld als u deze optie gebruikt in combinatie met <strong>Email track&trace code</strong>, anders wordt de track&trace code niet mee gestuurd.', 'wcflespakket' ) 
  108. );  
  109.  
  110. add_settings_field( 
  111. 'process',  
  112. __( 'Verwerk labels direct', 'wcflespakket' ),  
  113. array( &$this, 'checkbox_element_callback' ),  
  114. $option,  
  115. 'general',  
  116. array( 
  117. 'menu' => $option,  
  118. 'id' => 'process',  
  119. 'description' => __( 'Wanneer u deze optie ingeschakeld heeft, worden de orders bij het exporteren naar Flespakket direct verwerkt.', 'wcflespakket' ) 
  120. ); 
  121.  
  122. add_settings_field( 
  123. 'email_tracktrace',  
  124. __( 'Email track&trace code', 'wcflespakket' ),  
  125. array( &$this, 'checkbox_element_callback' ),  
  126. $option,  
  127. 'general',  
  128. array( 
  129. 'menu' => $option,  
  130. 'id' => 'email_tracktrace',  
  131. 'description' => __( 'De track&trace code (wanneer beschikbaar) wordt automatisch toegevoegd aan de orderbevestingsmail naar de klant.<br/><strong>Let op!</strong> Wanneer u deze optie selecteert, dient u erop te letten dat u geen track&trace mail vanuit Flespakket verstuurt.', 'wcflespakket' ) 
  132. ); 
  133.  
  134. add_settings_field( 
  135. 'myaccount_tracktrace',  
  136. __( 'Laat track&trace code op de <em>Mijn Account</em> pagina zien.', 'wcflespakket' ),  
  137. array( &$this, 'checkbox_element_callback' ),  
  138. $option,  
  139. 'general',  
  140. array( 
  141. 'menu' => $option,  
  142. 'id' => 'myaccount_tracktrace',  
  143. ); 
  144.  
  145. add_settings_field( 
  146. 'pakjegemak',  
  147. __( 'Voeg PakjeGemak toe aan de WooCommerce checkout', 'wcflespakket' ),  
  148. array( &$this, 'checkbox_element_callback' ),  
  149. $option,  
  150. 'general',  
  151. array( 
  152. 'menu' => $option,  
  153. 'id' => 'pakjegemak',  
  154. 'description' => __( 'Steeds meer consumenten kiezen ervoor hun pakket af te halen bij een afhaallocatie in plaats van deze thuis te laten bezorgen. Deze service van PostNL wordt PakjeGemak genoemd. U kunt dit ook aanbieden aan uw klanten.<br/><strong>Let op!</strong> Deze service is niet geoptimaliseerd voor mobiele browsers en werkt daar ook niet zo goed. U zou er voor kunnen kiezen om de pakjegemak knop door middel van CSS te verbergen voor mobiele browsers.', 'wcflespakket' ) 
  155. ); 
  156.  
  157. add_settings_field( 
  158. 'pakjegemak_description',  
  159. __( 'Omschrijving van PakjeGemak op de checkout pagina', 'wcflespakket' ),  
  160. array( &$this, 'textarea_element_callback' ),  
  161. $option,  
  162. 'general',  
  163. array( 
  164. 'menu' => $option,  
  165. 'id' => 'pakjegemak_description',  
  166. 'width' => '50',  
  167. 'height' => '4',  
  168. 'default' => 'Wilt u uw bestelling liever laten versturen naar een afhaallocatie van PostNL? Maak dan gebruik van de PakjeGemak service.',  
  169. ); 
  170.  
  171. add_settings_field( 
  172. 'pakjegemak_button',  
  173. __( 'Tekst op de pakjegemak knop', 'wcflespakket' ),  
  174. array( &$this, 'text_element_callback' ),  
  175. $option,  
  176. 'general',  
  177. array( 
  178. 'menu' => $option,  
  179. 'id' => 'pakjegemak_button',  
  180. 'size' => '50',  
  181. 'default' => 'PakjeGemak afhaallocatie kiezen',  
  182. ); 
  183.  
  184. // Section. 
  185. add_settings_section( 
  186. 'default_values',  
  187. __( 'Standaard export instellingen', 'wcflespakket' ),  
  188. array( &$this, 'section_options_callback' ),  
  189. $option 
  190. ); 
  191.  
  192. add_settings_field( 
  193. 'package',  
  194. __( 'Standaard verpakking', 'wcflespakket' ),  
  195. array( &$this, 'select_element_callback' ),  
  196. $option,  
  197. 'default_values',  
  198. array( 
  199. 'menu' => $option,  
  200. 'id' => 'package',  
  201. 'options' => array( 
  202. 'bottle_1' => '1 fles',  
  203. 'bottle_2' => '2 flessen',  
  204. 'bottle_3' => '3 flessen',  
  205. 'bottle_6' => '6 flessen',  
  206. 'bottle_12' => '12 flessen',  
  207. 'bottle_18' => '18 flessen',  
  208. 'other' => 'anders',  
  209. ); 
  210.  
  211. add_settings_field( 
  212. 'email',  
  213. __( 'Koppel emailadres klant', 'wcflespakket' ),  
  214. array( &$this, 'checkbox_element_callback' ),  
  215. $option,  
  216. 'default_values',  
  217. array( 
  218. 'menu' => $option,  
  219. 'id' => 'email',  
  220. 'description' => __( 'Wanneer u het emailadres van de klant koppelt, wordt daar een bericht met de Track&Trace link naartoe gemaild vanuit Flespakket. In uw <a href="http://www.flespakket.nl/backend/instellingen/tracktrace">Flespakket instellingen</a> kunt u deze mail opmaken in uw eigen stijl.', 'wcflespakket' ) 
  221. ); 
  222.  
  223. add_settings_field( 
  224. 'telefoon',  
  225. __( 'Koppel telefoonnummer klant', 'wcflespakket' ),  
  226. array( &$this, 'checkbox_element_callback' ),  
  227. $option,  
  228. 'default_values',  
  229. array( 
  230. 'menu' => $option,  
  231. 'id' => 'telefoon',  
  232. 'description' => __( 'Wanneer u het telefoonnummer van de klant koppelt met de zending, kan de koerier dit gebruiken ten behoeve van de aflevering van het pakket. De afleverkans voor buitenlandzendingen wordt hiermee aanzienlijk verhoogd.', 'wcflespakket' ) 
  233. ); 
  234.  
  235. // add_settings_field( 
  236. // 'extragroot',  
  237. // __( 'Extra groot formaat (+ € 2.19)', 'wcflespakket' ),  
  238. // array( &$this, 'checkbox_element_callback' ),  
  239. // $option,  
  240. // 'default_values',  
  241. // array( 
  242. // 'menu' => $option,  
  243. // 'id' => 'extragroot',  
  244. // 'description' => __( 'Vink deze optie aan indien uw pakket groter is dan 100 x 70 x 50 cm, maar kleiner dan 175 x 78 x 58 cm. Er wordt hiervoor een toeslag van € 2, 00 doorberekend.<br/><strong>Let op!</strong> Indien het pakket groter is dan 175 x 78 x 58 of zwaarder dan 30 kg, dan wordt er een pallettarief van € 70, 00 in rekening gebracht.', 'wcflespakket' ) 
  245. // ) 
  246. // ); 
  247.  
  248. add_settings_field( 
  249. 'huisadres',  
  250. __( 'Niet bij buren bezorgen (+ €0.23)', 'wcflespakket' ),  
  251. array( &$this, 'checkbox_element_callback' ),  
  252. $option,  
  253. 'default_values',  
  254. array( 
  255. 'menu' => $option,  
  256. 'id' => 'huisadres',  
  257. ); 
  258.  
  259. add_settings_field( 
  260. 'handtekening',  
  261. __( 'Handtekening voor ontvangst (+ €0.30)', 'wcflespakket' ),  
  262. array( &$this, 'checkbox_element_callback' ),  
  263. $option,  
  264. 'default_values',  
  265. array( 
  266. 'menu' => $option,  
  267. 'id' => 'handtekening',  
  268. 'description' => __( 'Hier wordt het pakket allereerst op het huisadres aangeboden. Mocht de geadresseerde niet thuis zijn, dan wordt het pakket bij de buren afgegeven. Er moet in beide gevallen voor worden getekend.', 'wcflespakket' ) 
  269. ); 
  270.  
  271. add_settings_field( 
  272. 'huishand',  
  273. __( 'Niet bij buren bezorgen + Handtekening voor ontvangst (+ €0.37)', 'wcflespakket' ),  
  274. array( &$this, 'checkbox_element_callback' ),  
  275. $option,  
  276. 'default_values',  
  277. array( 
  278. 'menu' => $option,  
  279. 'id' => 'huishand',  
  280. 'description' => __( 'Hiermee kiest u voor zekerheid. Het pakket wordt alleen bij de geadresseerde bezorgt die hiervoor tekent. Zo weet u zeker dat het pakket in ontvangst is genomen door de geadresseerde. Een veilig gevoel.', 'wcflespakket' ) 
  281. ); 
  282.  
  283. // add_settings_field( 
  284. // 'huishandverzekerd',  
  285. // __( 'Niet bij buren bezorgen + Handtekening voor ontvangst + verzekerd tot €50 (+ €0.50)', 'wcflespakket' ),  
  286. // array( &$this, 'checkbox_element_callback' ),  
  287. // $option,  
  288. // 'default_values',  
  289. // array( 
  290. // 'menu' => $option,  
  291. // 'id' => 'huishandverzekerd',  
  292. // 'description' => __( 'Er zit standaard geen verzekering op de zendingen. Indien u uw pakket wilt verzekeren tegen diefstal, schade en verlies kunt u dit bij ons doen voor € 0, 50. Wij verzekeren uw zending tot een waarde van € 50. Wilt u een duurder product verzekeren? Kies dan voor de optie "Verhoogd aansprakelijk".', 'wcflespakket' ) 
  293. // ) 
  294. // ); 
  295.  
  296. add_settings_field( 
  297. 'retourbgg',  
  298. __( 'Retour bij geen gehoor', 'wcflespakket' ),  
  299. array( &$this, 'checkbox_element_callback' ),  
  300. $option,  
  301. 'default_values',  
  302. array( 
  303. 'menu' => $option,  
  304. 'id' => 'retourbgg',  
  305. 'description' => __( 'Standaard wordt de zending twee keer aangeboden. Na twee mislukte afleverpogingen zal het pakket gedurende drie weken beschikbaar zijn op de dichtstbijzijnde afhaallocatie. Het kan daar door de klant worden opgehaald met het door de koerier achtergelaten briefje. Indien u wilt dat het pakket na twee keer te zijn aangeboden direct retour komt en dus NIET op het postkantoor komt te liggen, vink dan deze optie aan. Let op: Het pakket komt hierdoor eerder retour, waarvoor wij u ook zullen doorbelasten.', 'wcflespakket' ) 
  306. ); 
  307.  
  308. add_settings_field( 
  309. 'verzekerd',  
  310. __( 'Verhoogd aansprakelijk (+ €1.50 per 500 euro verzekerd)', 'wcflespakket' ),  
  311. array( &$this, 'checkbox_element_callback' ),  
  312. $option,  
  313. 'default_values',  
  314. array( 
  315. 'menu' => $option,  
  316. 'id' => 'verzekerd',  
  317. 'description' => __( 'Er zit standaard geen verzekering op de zendingen. Indien u toch wilt verzekeren kunt u dit doen voor € 1.45 extra per € 500 verzekerd. Wij verzekeren de inkoopwaarde van uw product. Met een maximale verzekerde waarde van € 5.000.', 'wcflespakket' ) 
  318. ); 
  319.  
  320. add_settings_field( 
  321. 'verzekerdbedrag',  
  322. __( 'Verzekerd bedrag (in euro)', 'wcflespakket' ),  
  323. array( &$this, 'text_element_callback' ),  
  324. $option,  
  325. 'default_values',  
  326. array( 
  327. 'menu' => $option,  
  328. 'id' => 'verzekerdbedrag',  
  329. 'size' => '5',  
  330. 'description' => __( 'Indien u kiest voor verhoogd aansprakelijk, dan kunt u hier de waarde van de inhoud van het pakket vermelden, afgerond op hele euros, zonder kommas punten of valutateken.', 'wcflespakket' ),  
  331. ); 
  332.  
  333. add_settings_field( 
  334. 'bericht',  
  335. __( 'Optioneel bericht', 'wcflespakket' ),  
  336. array( &$this, 'text_element_callback' ),  
  337. $option,  
  338. 'default_values',  
  339. array( 
  340. 'menu' => $option,  
  341. 'id' => 'bericht',  
  342. 'description' => __( "Met deze optie kunt u een optioneel bericht aan de zending toevoegen. Deze kunt u later terug lezen in uw overzicht zendingen. Deze tekst komt niet terug op het etiket, maar is door de klant wel terug te vinden op de track&trace pagina van PostNL onder 'Referentie'. Gebruik de code <strong>[ORDER_NR]</strong> om het WooCommerce ordernummer automatisch in te laten vullen.", 'wcflespakket' ),  
  343. ); 
  344.  
  345. add_settings_field( 
  346. 'kenmerk',  
  347. __( 'Eigen kenmerk', 'wcflespakket' ),  
  348. array( &$this, 'text_element_callback' ),  
  349. $option,  
  350. 'default_values',  
  351. array( 
  352. 'menu' => $option,  
  353. 'id' => 'kenmerk',  
  354. 'description' => __( "Met deze optie kunt u een kenmerk aan de zending toevoegen. Deze wordt linksboven op het label geprint en hierop kan later in het overzicht zendingen gezocht of geordend worden. Ook hier kunt u de code <strong>[ORDER_NR]</strong> gebruiken.", 'wcflespakket' ),  
  355. ); 
  356.  
  357. // // Standaard verpakkingsgewicht 
  358. // add_settings_field( 
  359. // 'verpakkingsgewicht',  
  360. // __( 'Standaard verpakkingsgewicht (gram)', 'wcflespakket' ),  
  361. // array( &$this, 'text_element_callback' ),  
  362. // $option,  
  363. // 'default_values',  
  364. // array( 
  365. // 'menu' => $option,  
  366. // 'id' => 'verpakkingsgewicht',  
  367. // 'size' => '5',  
  368. // 'description' => __( 'Gewicht van uw standaard verpakking, afgerond op hele grammen.', 'wcflespakket' ),  
  369. // ) 
  370. // ); 
  371.  
  372. // Section. 
  373. add_settings_section( 
  374. 'diagnose',  
  375. __( 'Diagnostische opties (alleen inschakelen bij problemen)', 'wcflespakket' ),  
  376. array( &$this, 'section_options_callback' ),  
  377. $option 
  378. ); 
  379.  
  380. /** 
  381. add_settings_field( 
  382. 'testmode',  
  383. __( 'Testmodus', 'wcflespakket' ),  
  384. array( &$this, 'checkbox_element_callback' ),  
  385. $option,  
  386. 'diagnose',  
  387. array( 
  388. 'menu' => $option,  
  389. 'id' => 'testmode',  
  390. 'size' => '50',  
  391. //'description' => __( 'Schakel testmodus in wanneer u de connectie met Flespakket eerst wilt testen', 'wcflespakket' ),  
  392. ); 
  393. */ 
  394.  
  395. $log_file_url = dirname(plugin_dir_url(__FILE__)) . '/flespakket_log.txt'; 
  396. $log_file_path = dirname(dirname(__FILE__)) . '/flespakket_log.txt'; 
  397.  
  398. add_settings_field( 
  399. 'error_logging',  
  400. __( 'Log alle server communicatie', 'wcflespakket' ),  
  401. array( &$this, 'checkbox_element_callback' ),  
  402. $option,  
  403. 'diagnose',  
  404. array( 
  405. 'menu' => $option,  
  406. 'id' => 'error_logging',  
  407. 'description' => file_exists($log_file_path)?'<a href="'.$log_file_url.'" target="_blank">Download logbestand</a>':'',  
  408. ); 
  409.  
  410. // Register settings. 
  411. register_setting( $option, $option, array( &$this, 'validate_options' ) ); 
  412.  
  413. /** 
  414. * Set default settings. 
  415. *  
  416. * @return void. 
  417. */ 
  418. public function default_settings() { 
  419. $default = array( 
  420. 'process' => '1',  
  421. 'download_display' => 'download',  
  422. 'email' => '1',  
  423. 'telefoon' => '1',  
  424. 'extragroot' => '0',  
  425. 'huisadres' => '0',  
  426. 'handtekening' => '0',  
  427. 'huishand' => '0',  
  428. 'huishandverzekerd' => '0',  
  429. 'retourbgg' => '0',  
  430. 'verzekerd' => '0',  
  431. 'verzekerdbedrag' => '0',  
  432. 'kenmerk' => '',  
  433. 'bericht' => '',  
  434. 'verpakkingsgewicht'=> '0',  
  435. ); 
  436.  
  437. add_option( 'wcflespakket_settings', $default ); 
  438.  
  439.  
  440. // Text element callback. 
  441. public function text_element_callback( $args ) { 
  442. $menu = $args['menu']; 
  443. $id = $args['id']; 
  444. $size = isset( $args['size'] ) ? $args['size'] : '25'; 
  445.  
  446. $options = get_option( $menu ); 
  447.  
  448. if ( isset( $options[$id] ) ) { 
  449. $current = $options[$id]; 
  450. } else { 
  451. $current = isset( $args['default'] ) ? $args['default'] : ''; 
  452.  
  453. $html = sprintf( '<input type="text" id="%1$s" name="%2$s[%1$s]" value="%3$s" size="%4$s"/>', $id, $menu, $current, $size ); 
  454.  
  455. // Displays option description. 
  456. if ( isset( $args['description'] ) ) { 
  457. $html .= sprintf( '<p class="description">%s</p>', $args['description'] ); 
  458.  
  459. echo $html; 
  460.  
  461. public function textarea_element_callback( $args ) { 
  462. $menu = $args['menu']; 
  463. $id = $args['id']; 
  464. $width = $args['width']; 
  465. $height = $args['height']; 
  466.  
  467. $options = get_option( $menu ); 
  468.  
  469. if ( isset( $options[$id] ) ) { 
  470. $current = $options[$id]; 
  471. } else { 
  472. $current = isset( $args['default'] ) ? $args['default'] : ''; 
  473.  
  474. $html = sprintf( '<textarea id="%1$s" name="%2$s[%1$s]" cols="%4$s" rows="%5$s"/>%3$s</textarea>', $id, $menu, $current, $width, $height ); 
  475.  
  476. // Displays option description. 
  477. if ( isset( $args['description'] ) ) { 
  478. $html .= sprintf( '<p class="description">%s</p>', $args['description'] ); 
  479.  
  480. echo $html; 
  481.  
  482. /** 
  483. * Checkbox field fallback. 
  484. * @param array $args Field arguments. 
  485. * @return string Checkbox field. 
  486. */ 
  487. public function checkbox_element_callback( $args ) { 
  488. $menu = $args['menu']; 
  489. $id = $args['id']; 
  490.  
  491. $options = get_option( $menu ); 
  492.  
  493. if ( isset( $options[$id] ) ) { 
  494. $current = $options[$id]; 
  495. } else { 
  496. $current = isset( $args['default'] ) ? $args['default'] : ''; 
  497.  
  498. $html = sprintf( '<input type="checkbox" id="%1$s" name="%2$s[%1$s]" value="1"%3$s />', $id, $menu, checked( 1, $current, false ) ); 
  499.  
  500. //$html .= sprintf( '<label for="%s"> %s</label><br />', $id, __( 'Activate/Deactivate', 'wcflespakket' ) ); 
  501.  
  502. // Displays option description. 
  503. if ( isset( $args['description'] ) ) { 
  504. $html .= sprintf( '<p class="description">%s</p>', $args['description'] ); 
  505.  
  506. echo $html; 
  507.  
  508. /** 
  509. * Select element fallback. 
  510. * @param array $args Field arguments. 
  511. * @return string Select field. 
  512. */ 
  513. public function select_element_callback( $args ) { 
  514. $menu = $args['menu']; 
  515. $id = $args['id']; 
  516.  
  517. $options = get_option( $menu ); 
  518.  
  519. if ( isset( $options[$id] ) ) { 
  520. $current = $options[$id]; 
  521. } else { 
  522. $current = isset( $args['default'] ) ? $args['default'] : ''; 
  523.  
  524. $html = sprintf( '<select id="%1$s" name="%2$s[%1$s]">', $id, $menu ); 
  525.  
  526. foreach ( $args['options'] as $key => $label ) { 
  527. $html .= sprintf( '<option value="%s"%s>%s</option>', $key, selected( $current, $key, false ), $label ); 
  528. $html .= '</select>'; 
  529.  
  530. // Displays option description. 
  531. if ( isset( $args['description'] ) ) { 
  532. $html .= sprintf( '<p class="description">%s</p>', $args['description'] ); 
  533.  
  534. echo $html; 
  535.  
  536. /** 
  537. * Displays a radio settings field 
  538. * @param array $args settings field args 
  539. */ 
  540. public function radio_element_callback( $args ) { 
  541. $menu = $args['menu']; 
  542. $id = $args['id']; 
  543.  
  544. $options = get_option( $menu ); 
  545.  
  546. if ( isset( $options[$id] ) ) { 
  547. $current = $options[$id]; 
  548. } else { 
  549. $current = isset( $args['default'] ) ? $args['default'] : ''; 
  550.  
  551. $html = ''; 
  552. foreach ( $args['options'] as $key => $label ) { 
  553. $html .= sprintf( '<input type="radio" class="radio" id="%1$s[%2$s][%3$s]" name="%1$s[%2$s]" value="%3$s"%4$s />', $menu, $id, $key, checked( $current, $key, false ) ); 
  554. $html .= sprintf( '<label for="%1$s[%2$s][%3$s]"> %4$s</label><br>', $menu, $id, $key, $label); 
  555.  
  556. // Displays option description. 
  557. if ( isset( $args['description'] ) ) { 
  558. $html .= sprintf( '<p class="description">%s</p>', $args['description'] ); 
  559.  
  560. echo $html; 
  561.  
  562. /** 
  563. * Section null fallback. 
  564. * @return void. 
  565. */ 
  566. public function section_options_callback() { 
  567.  
  568.  
  569. /** 
  570. * Validate options. 
  571. * @param array $input options to valid. 
  572. * @return array validated options. 
  573. */ 
  574. public function validate_options( $input ) { 
  575. // Create our array for storing the validated options. 
  576. $output = array(); 
  577.  
  578. // Loop through each of the incoming options. 
  579. foreach ( $input as $key => $value ) { 
  580.  
  581. // Check to see if the current option has a value. If so, process it. 
  582. if ( isset( $input[$key] ) ) { 
  583.  
  584. // Strip all HTML and PHP tags and properly handle quoted strings. 
  585. $output[$key] = strip_tags( stripslashes( $input[$key] ) ); 
  586.  
  587. // Return the array processing any additional functions filtered by this action. 
  588. return apply_filters( 'wcflespakket_validate_input', $output, $input ); 
  589.