Skip to content
Snippets Groups Projects
Verified Commit 203826dd authored by Bartek Jaskulski's avatar Bartek Jaskulski
Browse files

feat: improve tracker integration

parent 1ab5f82d
No related branches found
No related tags found
2 merge requests!5feat: remove compilation command,!4feat: remove compilation command
<?php <?php
declare(strict_types=1);
namespace WPDesk\Init\Extension\CommonBinding; namespace WPDesk\Init\Extension\CommonBinding;
use Psr\Log\LoggerInterface;
use WPDesk\Init\Binding\Hookable; use WPDesk\Init\Binding\Hookable;
use WPDesk\Init\Configuration\Configuration;
use WPDesk\Init\Plugin\Plugin; use WPDesk\Init\Plugin\Plugin;
class WPDeskTrackerBridge implements Hookable { class WPDeskTrackerBridge implements Hookable {
private Plugin $plugin; private Plugin $plugin;
public function __construct( Plugin $plugin ) { private LoggerInterface $logger;
private Configuration $config;
public function __construct( Plugin $plugin, Configuration $config, LoggerInterface $logger ) {
$this->plugin = $plugin; $this->plugin = $plugin;
$this->config = $config;
$this->logger = $logger;
} }
public function hooks(): void { public function hooks(): void {
$tracker_factory = new \WPDesk_Tracker_Factory_Prefixed(); $tracker_factory = new \WPDesk_Tracker_Factory_Prefixed();
$tracker_factory->create_tracker( $this->plugin->get_basename() ); $tracker_factory->create_tracker( $this->plugin->get_basename(), $this->logger );
$shops = $this->config->get( 'shops', [] );
$shop_url = $shops[ get_user_locale() ] ?? ( $shops['default'] ?? 'https://wpdesk.net' );
$tracker_ui = new OptInOptOut(
$this->plugin->get_file(),
$this->plugin->get_slug(),
$shop_url,
$this->plugin->get_name()
);
$tracker_ui->create_objects();
$tracker_ui->hooks();
} }
} }
...@@ -9,6 +9,7 @@ use Psr\Container\ContainerInterface; ...@@ -9,6 +9,7 @@ use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use WPDesk\Init\Binding\Loader\ArrayDefinitions; use WPDesk\Init\Binding\Loader\ArrayDefinitions;
use WPDesk\Init\Binding\Loader\BindingDefinitions; use WPDesk\Init\Binding\Loader\BindingDefinitions;
use WPDesk\Init\Configuration\Configuration;
use WPDesk\Init\Configuration\ReadableConfig; use WPDesk\Init\Configuration\ReadableConfig;
use WPDesk\Init\DependencyInjection\ContainerBuilder; use WPDesk\Init\DependencyInjection\ContainerBuilder;
use WPDesk\Init\Extension\CommonBinding\RequirementsCheck; use WPDesk\Init\Extension\CommonBinding\RequirementsCheck;
...@@ -20,6 +21,7 @@ use WPDesk\Logger\SimpleLoggerFactory; ...@@ -20,6 +21,7 @@ use WPDesk\Logger\SimpleLoggerFactory;
class ConditionalExtension implements Extension { class ConditionalExtension implements Extension {
public function bindings( ContainerInterface $c ): BindingDefinitions { public function bindings( ContainerInterface $c ): BindingDefinitions {
$config = $c->get( Configuration::class );
$bindings = []; $bindings = [];
if ( class_exists( \WPDesk_Basic_Requirement_Checker::class ) ) { if ( class_exists( \WPDesk_Basic_Requirement_Checker::class ) ) {
...@@ -34,7 +36,7 @@ class ConditionalExtension implements Extension { ...@@ -34,7 +36,7 @@ class ConditionalExtension implements Extension {
} }
if ( class_exists( \WPDesk_Tracker::class ) ) { if ( class_exists( \WPDesk_Tracker::class ) ) {
$bindings[] = WPDeskTrackerBridge::class; $bindings['plugins_loaded'] = WPDeskTrackerBridge::class;
} }
return new ArrayDefinitions( $bindings ); return new ArrayDefinitions( $bindings );
......
...@@ -29,7 +29,7 @@ class ConfigExtension implements Extension { ...@@ -29,7 +29,7 @@ class ConfigExtension implements Extension {
public function build( ContainerBuilder $builder, Plugin $plugin, ReadableConfig $config ): void { public function build( ContainerBuilder $builder, Plugin $plugin, ReadableConfig $config ): void {
$services = array_map( $services = array_map(
fn( $service ): string => (string) ( new Path( $service ) )->absolute( $plugin->get_path() ), fn ( string $service ) => (string) ( new Path( $service ) )->absolute( $plugin->get_path() ),
(array) $config->get( 'services', [] ) (array) $config->get( 'services', [] )
); );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment