DescribedRadioOption.php
1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php namespace MeowCrew\RoleAndCustomerBasedPricing\Settings\CustomOptions;
use MeowCrew\RoleAndCustomerBasedPricing\Core\ServiceContainer;
use WC_Admin_Settings;
class DescribedRadioOption {
const FIELD_TYPE = 'rcbp_described_radio';
public function __construct() {
add_action( 'woocommerce_admin_field_' . self::FIELD_TYPE, array( $this, 'render' ) );
}
public function render( $value ) {
if ( ! isset( $value['id'] ) ) {
$value['id'] = '';
}
if ( ! isset( $value['title'] ) ) {
$value['title'] = isset( $value['name'] ) ? $value['name'] : '';
}
if ( ! isset( $value['default'] ) ) {
$value['default'] = '';
}
if ( ! isset( $value['value'] ) ) {
$value['value'] = WC_Admin_Settings::get_option( $value['id'], $value['default'] );
}
$option_value = $value['value'];
?>
<tr valign="top">
<th scope="row" class="titledesc">
<label for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo esc_html( $value['title'] ); ?> </label>
</th>
<td class="forminp forminp-<?php echo esc_attr( sanitize_title( $value['type'] ) ); ?>">
<fieldset>
<ul>
<?php
foreach ( $value['options'] as $key => $val ) {
?>
<li>
<label>
<input
name="<?php echo esc_attr( $value['id'] ); ?>"
value="<?php echo esc_attr( $key ); ?>"
type="radio"
style="<?php echo esc_attr( $value['css'] ); ?>"
class="<?php echo esc_attr( $value['class'] ); ?>"
<?php checked( $key, $option_value ); ?>
/> <?php echo esc_html( $val['label'] ); ?>
</label>
<p class="description"><?php echo esc_html( $val['description'] ); ?></p>
</li>
<?php
}
?>
</ul>
</fieldset>
</td>
</tr>
<?php
}
}