PluginProbe ʕ •ᴥ•ʔ
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping / 6.10.0
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping v6.10.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 3 days ago Convert 3 days ago Duplicate 3 days ago Management 3 days ago Timestamps 3 days ago Tracker 3 days ago views 3 days ago CommonMethodSettings.php 3 days ago FreeShippingCalculator.php 3 days ago FreeShippingThresholdRuleValidator.php 3 days ago MethodDescription.php 3 days ago MethodLogo.php 3 days ago MethodLogoCheckoutBlocksAssets.php 3 days ago MethodLogoSettingsField.php 3 days ago MethodSettings.php 3 days ago MethodTitle.php 3 days ago RateCalculator.php 3 days ago RateCalculatorFactory.php 3 days ago SettingsDisplayPreparer.php 3 days ago SettingsProcessor.php 3 days ago SingleMethodSettings.php 3 days 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