PluginProbe
Product Labels, Quick View, Buy Now, Pre-Orders, Frequently Bought Together & More for WooCommerce – Merchant / 2.3.1
Product Labels, Quick View, Buy Now, Pre-Orders, Frequently Bought Together & More for WooCommerce – Merchant v2.3.1
2.3.2 2.3.1 2.3.0 2.2.8 2.2.7 trunk 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.10.5 1.11.0 1.11.1 1.11.2 1.6 1.7 1.8 1.8.1 1.8.2 1.8.3 1.9.0 1.9.1 1.9.10 1.9.11 All 60 releases
merchant / admin / classes / admin-options / fields / hook-select / class-merchant-field-hook-select.php
admin/classes/admin-options/fields/hook-select
class-merchant-field-hook-select.php 1.4 KB 1 month ago template.php 1.5 KB 1 month ago

class-merchant-field-hook-select.php in Product Labels, Quick View, Buy Now, Pre-Orders, Frequently Bought Together & More for WooCommerce – Merchant 2.3.1, at admin/classes/admin-options/fields/hook-select/class-merchant-field-hook-select.php

74 lines 1.4 KB Raw Download Zip
1 <?php
2 /**
3 * Merchant Field: Hook Select
4 *
5 * @package Merchant
6 * @since 2.2.5
7 */
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit;
11 }
12
13 /**
14 * Merchant_Field_Hook_Select
15 *
16 * Renders a dropdown select paired with a priority number input.
17 *
18 * @since 2.2.5
19 */
20 class Merchant_Field_Hook_Select extends Merchant_Abstract_Field {
21
22 /**
23 * Render the hook-select field HTML output.
24 *
25 * @since 2.2.5
26 *
27 * @return void
28 */
29 public function render() {
30 $this->get_template_part();
31 }
32
33 /**
34 * Type-specific sanitization for the hook-select field.
35 *
36 * @since 2.2.5
37 *
38 * @param mixed $value The raw submitted value.
39 *
40 * @return mixed The sanitized value.
41 */
42 protected function sanitize_value( $value ) {
43 if ( ! is_array( $value ) ) {
44 return array();
45 }
46
47 return array(
48 'hook_name' => sanitize_key( $value['hook_name'] ?? '' ),
49 'hook_priority' => $this->clamp_priority( absint( $value['hook_priority'] ?? 10 ) ),
50 );
51 }
52
53 /**
54 * Keep the priority within the min/max bounds when the field defines them.
55 *
56 * @since 2.2.5
57 *
58 * @param int $priority The sanitized priority.
59 *
60 * @return int The priority, clamped to the configured bounds.
61 */
62 private function clamp_priority( $priority ) {
63 if ( isset( $this->field['min'] ) ) {
64 $priority = max( absint( $this->field['min'] ), $priority );
65 }
66
67 if ( isset( $this->field['max'] ) ) {
68 $priority = min( absint( $this->field['max'] ), $priority );
69 }
70
71 return $priority;
72 }
73 }
74