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.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 day ago Convert 1 day ago Duplicate 1 day ago Management 1 day ago Timestamps 1 day ago Tracker 1 day ago views 1 day ago CommonMethodSettings.php 1 day ago FreeShippingCalculator.php 1 day ago FreeShippingThresholdRuleValidator.php 1 day ago MethodDescription.php 1 day ago MethodLogo.php 1 day ago MethodLogoCheckoutBlocksAssets.php 1 day ago MethodLogoSettingsField.php 1 day ago MethodSettings.php 1 day ago MethodTitle.php 1 day ago RateCalculator.php 1 day ago RateCalculatorFactory.php 1 day ago SettingsDisplayPreparer.php 1 day ago SettingsProcessor.php 1 day ago SingleMethodSettings.php 1 day 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