Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions src/Addons/Addons.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,22 +36,10 @@ class Addons {
*/
private $chained_products_plugin;

/**
* @var ASTPlugin
*/
private $ast_plugin;

/**
* @var PhWoocommerceShipmentTrackingProPlugin
*/
private $woocommerce_shipment_tracking_pro;

public function __construct() {
$this->shipping = new Shipping();
$this->inventory = new Inventory();
$this->marketplaces = new Marketplaces();
$this->chained_products_plugin = new ChainedProducts();
$this->ast_plugin = new ASTPlugin();
$this->woocommerce_shipment_tracking_pro = new PhWoocommerceShipmentTrackingProPlugin();
}
}
95 changes: 0 additions & 95 deletions src/Addons/Plugins/ASTPlugin/ASTPlugin.php

This file was deleted.

This file was deleted.

24 changes: 24 additions & 0 deletions src/Admin/Notices.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
class Notices {

public function __construct() {
add_action( 'admin_notices', array( $this, 'unavailable_selected_shipping_tracking_provider' ) );
add_action( 'admin_notices', array( $this, 'admin_notices' ) );
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
}
Expand Down Expand Up @@ -66,4 +67,27 @@ public function display_notice() {
<?php
}

public function unavailable_selected_shipping_tracking_provider(): void {
$manager = ShoppingFeedHelper::wc_tracking_provider_manager();
$selected_provider = $manager->get_selected_provider( false );
if ( ! $selected_provider->is_available() ) {
?>
<div class="notice notice-error">
<p>
<span class="dashicons dashicons-warning"></span>
<?php
echo wp_kses_post(
sprintf(
// translators: 1: the provider name, 2: the plugin settings link
__( 'The selected shipment tracking provider <strong>"%1$s"</strong> is not available. Please go the <a href="%2$s">shipping settings</a> to choose a new one.', 'shopping-feed' ),
$selected_provider->name(),
add_query_arg( 'tab', 'shipping-settings', ShoppingFeedHelper::get_setting_link() )
)
);
?>
</p>
</div>
<?php
}
}
}
44 changes: 32 additions & 12 deletions src/Admin/Options.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
use ShoppingFeed\ShoppingFeedWC\Orders\Operations;
use ShoppingFeed\ShoppingFeedWC\Sdk\Sdk;
use ShoppingFeed\ShoppingFeedWC\Orders\Orders;
use ShoppingFeed\ShoppingFeedWC\ShipmentTracking\ShipmentTrackingManager;
use ShoppingFeed\ShoppingFeedWC\ShoppingFeedHelper;
use ShoppingFeed\ShoppingFeedWC\Admin;

Expand Down Expand Up @@ -1232,25 +1233,44 @@ function () {
},
self::SF_SHIPPING_SETTINGS_PAGE
);

add_settings_field(
'shipping_is_compatible_with_addons',
__( 'Retrieval mode', 'shopping-feed' ),
'shipping_tracking_provider',
__( 'Tracking provider', 'shopping-feed' ),
function () {
$manager = ShoppingFeedHelper::wc_tracking_provider_manager();
$selected_provider = $this->sf_shipping_options['tracking_provider'] ?? '';
?>
<select id="retrieval_mode"
name="<?php echo esc_html( sprintf( '%s[retrieval_mode]', self::SF_SHIPPING_OPTIONS ) ); ?>">
<option value="ADDONS"
<?php selected( 'ADDONS', $this->sf_shipping_options['retrieval_mode'] ? $this->sf_shipping_options['retrieval_mode'] : false ); ?>>
Addons
</option>
<option value="METAS"
<?php selected( 'METAS', $this->sf_shipping_options['retrieval_mode'] ? $this->sf_shipping_options['retrieval_mode'] : false ); ?>>
Métas
<select id="tracking_provider" name="<?php echo esc_html( sprintf( '%s[tracking_provider]', self::SF_SHIPPING_OPTIONS ) ); ?>">
<option value=""><?php esc_html_e( 'Disable', 'shopping-feed' ); ?></option>
<?php foreach ( $manager->get_providers() as $provider ) : ?>
<option value="<?php echo esc_attr( $provider->id() ); ?>"
<?php selected( $selected_provider, $provider->id() ); ?>
<?php disabled( ! $provider->is_available() ); ?>>
<?php echo esc_html( $provider->name() ); ?>
<?php
if ( ! $provider->is_available() ) {
echo esc_html(
sprintf(
' (%s)',
__( 'not installed/activated ', 'shopping-feed' )
)
);
}
?>
</option>
<?php endforeach; ?>
</select>
<?php if ( ! $manager->get_selected_provider( false )->is_available() ) : ?>
<p class="description"
id="tagline-description">
<span class="dashicons dashicons-warning"></span>
<strong><?php esc_attr_e( 'The selected provider is not available.', 'shopping-feed' ); ?></strong>
</p>
<?php endif; ?>
<p class="description"
id="tagline-description">
<?php echo esc_attr_e( 'How shipping information will be retrieved', 'shopping-feed' ); ?>
<?php esc_attr_e( 'Choose the provider used to retrieve tracking information.', 'shopping-feed' ); ?>
</p>
<?php
},
Expand Down
58 changes: 58 additions & 0 deletions src/ShipmentTracking/Provider/AdvancedShipmentTracking.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
<?php

namespace ShoppingFeed\ShoppingFeedWC\ShipmentTracking\Provider;

use ShoppingFeed\ShoppingFeedWC\ShipmentTracking\ShipmentTrackingData;
use ShoppingFeed\ShoppingFeedWC\ShipmentTracking\ShipmentTrackingProvider;

/**
* Provider for the Advanced Shipment Tracking / Advanced Shipment Tracking Pro plugin.
*/
class AdvancedShipmentTracking implements ShipmentTrackingProvider {

/**
* @inerhitDoc
*/
public function id(): string {
return 'advanced_shipment_tracking';
}

/**
* @inerhitDoc
*/
public function name(): string {
return 'Advanced Shipment Tracking / Advanced Shipment Tracking Pro';
}

/**
* @inerhitDoc
*/
public function is_available(): bool {
return defined( 'SHIPMENT_TRACKING_PATH' );
}

/**
* @inheritDoc
*/
public function get_tracking_data( \WC_Order $order ): ShipmentTrackingData {
$tracking_data = new ShipmentTrackingData();
$tracking_info = [];
if ( function_exists( 'ast_get_tracking_items' ) ) { // AST >= 3.0 & AST Pro
$tracking_info = ast_get_tracking_items( $order->get_id() );
} elseif ( class_exists( '\WC_Advanced_Shipment_Tracking_Actions' ) ) { // AST < 3.0
$ast = \WC_Advanced_Shipment_Tracking_Actions::get_instance();
$tracking_info = $ast->get_tracking_items( $order->get_id(), true );
}

if ( is_array( $tracking_info ) ) {
foreach ( $tracking_info as $tracking_item ) {
$tracking_data->add_tracking_data(
$tracking_item['tracking_number'],
$tracking_item['formatted_tracking_link']
);
}
}

return $tracking_data;
}
}
Loading
Loading