PluginProbe ʕ •ᴥ•ʔ
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping / 6.11.0
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping v6.11.0
6.12.1 6.12.0 6.11.0 6.10.0 6.9.1 6.9.0 6.8.1 6.8.0 6.7.4 6.7.3 6.7.2 6.7.0 4.21.7 4.22.0 4.22.1 4.23.0 4.23.1 4.23.2 4.23.3 4.24.0 4.24.1 4.24.10 4.24.11 4.24.12 4.24.13 4.24.14 4.24.15 4.24.16 4.24.17 4.24.18 4.24.19 4.24.2 4.24.4 4.24.6 4.24.7 4.24.8 4.24.9 4.25.0 4.25.1 4.25.2 4.25.4 4.25.5 4.25.6 4.25.7 4.25.8 4.3.0 4.3.1 4.4.0 4.4.1 4.5.0 4.5.1 4.6.0 4.6.1 4.7.0 4.7.1 4.7.2 4.8.0 4.8.1 4.8.3 4.8.4 4.8.5 4.9.0 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.0.9 5.1.0 5.1.1 5.1.2 5.1.3 5.2.0 5.3.0 5.3.1 5.3.3 5.3.4 5.3.5 6.0.0 6.1.0 6.1.1 6.1.2 6.2.0 6.2.1 6.2.2 6.2.3 6.2.4 6.3.0 trunk 6.4.0 1.4 6.4.1 1.4.1 6.4.2 1.5 6.4.3 1.6 6.4.5 1.6.1 6.5.0 1.6.2 6.5.1 1.7 6.5.2 1.8 6.5.3 1.9 6.5.4 1.9.1 6.5.5 1.9.10 6.5.6 1.9.11 6.5.7 1.9.12 6.5.8 1.9.2 6.6.0 1.9.3 6.6.1 1.9.4 6.6.2 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0 2.0.1 2.1 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.6 3.0.7 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.10.0 3.11.0 3.11.1 3.11.2 3.11.3 3.11.4 3.12.0 3.13.0 3.14.0 3.14.1 3.14.2 3.14.3 3.14.4 3.15.0 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.2.0 3.3.1 3.3.10 3.3.11 3.3.12 3.3.13 3.3.14 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4.0 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.8.0 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.15 3.9.16 3.9.17 3.9.18 3.9.19 3.9.2 3.9.20 3.9.21 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.9 4.0.0 4.0.1 4.0.10 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.11.0 4.11.1 4.11.2 4.11.3 4.11.4 4.11.5 4.11.6 4.11.7 4.11.8 4.11.9 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.14.0 4.14.1 4.14.2 4.15.0 4.16.0 4.16.1 4.16.2 4.17.0 4.18.0 4.18.1 4.18.2 4.18.3 4.18.4 4.18.5 4.18.6 4.19.0 4.19.1 4.2.0 4.20.0 4.20.1 4.20.2 4.20.3 4.21.0 4.21.1 4.21.2 4.21.3 4.21.4 4.21.5
flexible-shipping / src / WPDesk / FS / TableRate / ShippingMethod / MethodLogoSettingsField.php
flexible-shipping / src / WPDesk / FS / TableRate / ShippingMethod Last commit date
BlockEditing 1 week ago Convert 1 week ago Duplicate 1 week ago Management 1 week ago Timestamps 1 week ago Tracker 1 week ago views 1 week ago CommonMethodSettings.php 1 week ago FreeShippingCalculator.php 1 week ago FreeShippingThresholdRuleValidator.php 1 week ago MethodDescription.php 1 week ago MethodLogo.php 1 week ago MethodLogoCheckoutBlocksAssets.php 1 week ago MethodLogoSettingsField.php 1 week ago MethodSettings.php 1 week ago MethodTitle.php 1 week ago RateCalculator.php 1 week ago RateCalculatorFactory.php 1 week ago SettingsDisplayPreparer.php 1 week ago SettingsProcessor.php 1 week ago SingleMethodSettings.php 1 week ago
MethodLogoSettingsField.php
114 lines
1 <?php
2 /**
3 * Class MethodLogoSettingsField
4 *
5 * @package WPDesk\FS\TableRate\ShippingMethod
6 */
7
8 namespace WPDesk\FS\TableRate\ShippingMethod;
9
10 use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
11
12 /**
13 * Renders the shipping method logo picker field.
14 */
15 class MethodLogoSettingsField implements Hookable {
16
17 const FIELD_TYPE = 'method_logo';
18
19 /**
20 * @var bool
21 */
22 private static $script_rendered = false;
23
24 /**
25 * Hooks.
26 */
27 public function hooks() {
28 add_filter( 'woocommerce_generate_' . self::FIELD_TYPE . '_html', [ $this, 'generate_field_html' ], 10, 4 );
29 add_action( 'flexible_shipping_method_script', [ $this, 'print_media_script' ], 10, 2 );
30 }
31
32 /**
33 * @param string $field_html .
34 * @param string $key .
35 * @param array $data .
36 * @param \WC_Shipping_Method $shipping_method .
37 *
38 * @return string
39 */
40 public function generate_field_html( $field_html, $key, $data, $shipping_method ) {
41 $field_key = $shipping_method->get_field_key( $key );
42 $attachment_id = absint( $data['default'] ?? 0 );
43 $image_url = '';
44 $image_alt = '';
45
46 if ( 0 !== $attachment_id ) {
47 $image_data = MethodLogo::get_logo_data(
48 [
49 CommonMethodSettings::METHOD_LOGO_ID => $attachment_id,
50 CommonMethodSettings::METHOD_TITLE => $data[ CommonMethodSettings::METHOD_TITLE ] ?? '',
51 ]
52 );
53 $image_url = $image_data['url'];
54 $image_alt = $image_data['alt'];
55 }
56
57 return $this->render_view(
58 'method-logo-settings-field.php',
59 [
60 'field_key' => $field_key,
61 'attachment_id' => $attachment_id,
62 'image_url' => $image_url,
63 'image_alt' => $image_alt,
64 'field_title' => $data['title'] ?? '',
65 'description' => $data['description'] ?? '',
66 'select_label' => 0 === $attachment_id ? __( 'Choose logo', 'flexible-shipping' ) : __( 'Change logo', 'flexible-shipping' ),
67 'remove_label' => __( 'Remove logo', 'flexible-shipping' ),
68 'is_logo_selected' => 0 !== $attachment_id,
69 ]
70 );
71 }
72
73 /**
74 * @param string $method_id .
75 * @param int $instance_id .
76 */
77 public function print_media_script( $method_id, $instance_id ) {
78 if ( self::$script_rendered ) {
79 return;
80 }
81
82 wp_enqueue_media();
83 self::$script_rendered = true;
84 $choose_label = __( 'Choose logo', 'flexible-shipping' );
85 $change_label = __( 'Change logo', 'flexible-shipping' );
86 $script_html = $this->render_view(
87 'method-logo-settings-field-script.php',
88 [
89 'choose_label' => $choose_label,
90 'change_label' => $change_label,
91 ]
92 );
93
94 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
95 echo $script_html;
96 }
97
98 /**
99 * @param string $view_file .
100 * @param array $data .
101 *
102 * @return string
103 */
104 private function render_view( $view_file, array $data = [] ) {
105 $view_path = __DIR__ . '/views/' . $view_file;
106 $view_data = $data;
107
108 ob_start();
109 include $view_path;
110
111 return (string) ob_get_clean();
112 }
113 }
114