Select Git revision
ShippingMethodInstanceStrategy.php
-
Grzegorz Rola authoredGrzegorz Rola authored
ShippingMethodInstanceStrategy.php 1.12 KiB
<?php
namespace WPDesk\ShowDecision\WooCommerce;
use WPDesk\ShowDecision\ShouldShowStrategy;
class ShippingMethodInstanceStrategy implements ShouldShowStrategy
{
private \WC_Shipping_Zones $shipping_zones;
private string $method_id;
public function __construct(\WC_Shipping_Zones $shipping_zones, string $method_id)
{
$this->shipping_zones = $shipping_zones;
$this->method_id = $method_id;
}
public function shouldDisplay(): bool
{
if ($this->isInShippingSettings()) {
if (isset($_GET['instance_id'])) {
$shipping_method = $this->shipping_zones::get_shipping_method(sanitize_key($_GET['instance_id']));
if ($shipping_method instanceof \WC_Shipping_Method) {
return $shipping_method->id === $this->method_id;
}
}
}
return false;
}
private function isInShippingSettings() : bool
{
if ($this->isGetParameterWithValue('page', 'wc-settings') && $this->isGetParameterWithValue('tab', 'shipping')) {
return \true;
}
return \false;
}
private function isGetParameterWithValue(string $parameter, string $value) : bool
{
return isset($_GET[$parameter]) && $_GET[$parameter] === $value;
}
}