diff --git a/components/address-input.jsx b/components/address-input.jsx index 392eda25ab85b97fbe8c145575611097fab74e6b..bf72f936ab43153b896c369df78d84975dfed580 100644 --- a/components/address-input.jsx +++ b/components/address-input.jsx @@ -54,7 +54,7 @@ export default class AddressInput extends React.Component { } /** - * @param event + * @param {React.ChangeEvent<HTMLInputElement>} event */ handleChange(event) { let state = this.state; diff --git a/components/sender-address-table.jsx b/components/sender-address-table.jsx index 81e9cb8350f5e1eae21a21d2b693aa9de8e00ebd..59be9f8fce4255b0ad947e6fb58e4bac6ad913d3 100644 --- a/components/sender-address-table.jsx +++ b/components/sender-address-table.jsx @@ -30,7 +30,7 @@ export default class SenderAddressTable extends React.Component { } /** - * @param event + * @param {MouseEvent} event */ handleClickAdd(event) { event.preventDefault(); @@ -51,7 +51,7 @@ export default class SenderAddressTable extends React.Component { } /** - * @param event + * @param {MouseEvent} event */ handleClickDelete(event) { event.preventDefault(); diff --git a/src/SenderAddress.php b/src/SenderAddress.php index 02e30c0f6e2f6666c020ba1424a6927be55ac4b6..2ca5918d6d6c536c4ccc84233dec9900a717ac2f 100644 --- a/src/SenderAddress.php +++ b/src/SenderAddress.php @@ -48,4 +48,20 @@ class SenderAddress extends AbstractSenderAddress { return $address; } + /** + * Create addresses from settings. + * + * @param string $sender_address_settings JSON string. + * + * @return SenderAddress[] + */ + public static function create_sender_addresses_from_settings( $sender_address_settings ) { + $sender_addresses = []; + foreach ( json_decode( $sender_address_settings, true ) as $box_setting ) { + $sender_addresses[] = SenderAddress::create_from_array( $box_setting ); + } + + return $sender_addresses; + } + } diff --git a/src/SenderAddressFactory.php b/src/SenderAddressFactory.php deleted file mode 100644 index c4e3e144f53137b0ea868dd446084c58fd98951b..0000000000000000000000000000000000000000 --- a/src/SenderAddressFactory.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php - - -namespace WpDesk\WooCommerce\ShippingMethod\Fields\SenderAddress; - -use WpDesk\WooCommerce\ShippingMethod\SenderAddress; - -class SenderAddressFactory { - - /** - * Create addresses from settings. - * - * @param string $sender_address_settings - * - * @return SenderAddress[] - */ - public static function create_sender_addresses_from_settings( $sender_address_settings ) { - $sender_addresses = []; - foreach ( json_decode( $sender_address_settings, true ) as $box_setting ) { - $sender_addresses[] = SenderAddress::create_from_array( $box_setting ); - } - - return $sender_addresses; - } - -} diff --git a/src/ShippingMethodRenderSettingsTrait.php b/src/ShippingMethodRenderSettingsTrait.php index 35f80af8a41af69dbecd84076876b575cfeccfe9..b6ea3ae6d310f0d3a9e7f9971c95f20418f76192 100644 --- a/src/ShippingMethodRenderSettingsTrait.php +++ b/src/ShippingMethodRenderSettingsTrait.php @@ -9,6 +9,7 @@ namespace WpDesk\WooCommerce\ShippingMethod\Fields\SenderAddress; /** * Can render settings html. + * For use in shipping method when sender_addresses field is used in shipping method settings. */ trait ShippingMethodRenderSettingsTrait { @@ -19,7 +20,9 @@ trait ShippingMethodRenderSettingsTrait { * @return string */ public function get_field_key( $key ) { - return $this->plugin_id . $this->id . '_' . $key; + /** @var \WC_Shipping_Method $shipping_method */ + $shipping_method = $this; + return $shipping_method->plugin_id . $shipping_method->id . '_' . $key; } /** @@ -59,7 +62,9 @@ trait ShippingMethodRenderSettingsTrait { * @return string */ public function generate_sender_addresses_html( $key, $data ) { - $data['value'] = $this->get_option( $key ); + /** @var \WC_Shipping_Method $shipping_method */ + $shipping_method = $this; + $data['value'] = $shipping_method->get_option( $key ); $data = $this->get_field_params( $key, $data ); $settings_field = new SettingsField( $data['field_key'] ); ob_start();