flexible-shipping
/
src
/
WPDesk
/
FS
/
TableRate
/
ShippingMethod
/
Tracker
/
MethodLogoTracker.php
MethodLogoTracker.php
48 lines
| 1 | <?php |
| 2 | /** |
| 3 | * Class MethodLogoTracker |
| 4 | * |
| 5 | * @package WPDesk\FS\TableRate\ShippingMethod\Tracker |
| 6 | */ |
| 7 | |
| 8 | declare( strict_types=1 ); |
| 9 | |
| 10 | namespace WPDesk\FS\TableRate\ShippingMethod\Tracker; |
| 11 | |
| 12 | use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable; |
| 13 | use WPDesk\FS\TableRate\ShippingMethod\CommonMethodSettings; |
| 14 | |
| 15 | /** |
| 16 | * Can append shipping method logo usage data to tracker. |
| 17 | */ |
| 18 | final class MethodLogoTracker implements Hookable { |
| 19 | |
| 20 | const TRACKER_DATA_NAME = 'method_logo_count'; |
| 21 | |
| 22 | public function hooks(): void { |
| 23 | add_filter( 'flexible-shipping/tracker/method-settings', [ $this, 'append_logo_data_to_tracker' ], 10, 2 ); |
| 24 | } |
| 25 | |
| 26 | /** |
| 27 | * @param mixed $data Tracker data. |
| 28 | * @param mixed $shipping_method_settings Shipping method settings. |
| 29 | * |
| 30 | * @return mixed |
| 31 | */ |
| 32 | public function append_logo_data_to_tracker( $data, $shipping_method_settings ) { |
| 33 | if ( ! is_array( $data ) || ! is_array( $shipping_method_settings ) ) { |
| 34 | return $data; |
| 35 | } |
| 36 | |
| 37 | if ( ! isset( $data[ self::TRACKER_DATA_NAME ] ) ) { |
| 38 | $data[ self::TRACKER_DATA_NAME ] = 0; |
| 39 | } |
| 40 | |
| 41 | if ( 0 < (int) ( $shipping_method_settings[ CommonMethodSettings::METHOD_LOGO_ID ] ?? 0 ) ) { |
| 42 | ++$data[ self::TRACKER_DATA_NAME ]; |
| 43 | } |
| 44 | |
| 45 | return $data; |
| 46 | } |
| 47 | } |
| 48 |