*/ private $options; /** * @var Container */ private $container; /** * @var ShippingRateFactory */ private $shippingRateFactory; /** * @var Carrier\EntityRepository|null */ protected $carrierRepository; /** * @var WpAdapter */ private $wpAdapter; /** * @var WcAdapter */ private $wcAdapter; /** * @param int $instanceId Shipping method instance id. */ public function __construct( int $instanceId = 0 ) { parent::__construct(); $this->container = CompatibilityBridge::getContainer(); $this->carrierRepository = $this->container->getByType( Carrier\EntityRepository::class ); $this->wpAdapter = $this->container->getByType( WpAdapter::class ); $this->wcAdapter = $this->container->getByType( WcAdapter::class ); $this->id = static::getShippingMethodId(); // phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps $this->instance_id = $this->wpAdapter->absint( $instanceId ); // phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps $this->method_title = __( 'Packeta', 'packeta' ); $this->title = __( 'Packeta', 'packeta' ); // phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps $this->method_description = __( 'Allows to choose one of Packeta delivery methods', 'packeta' ); $carrier = $this->carrierRepository->getAnyById( static::CARRIER_ID, true ); if ( $carrier !== null ) { // phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps $this->method_title = $carrier->getName(); $this->title = $carrier->getName(); // translators: %s is carrier name. $this->method_description = sprintf( __( 'Allows customers to use %s carrier delivery', 'packeta' ), $carrier->getName() ); // phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps } $this->enabled = 'yes'; // This can be added as a setting. $this->supports = [ 'shipping-zones', 'instance-settings', 'instance-settings-modal', ]; // phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps $this->tax_status = 'taxable'; // phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps if ( $this->instance_id !== 0 ) { // phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps $this->options = $this->wpAdapter->getOption( sprintf( 'woocommerce_%s_%s_settings', $this->id, $this->instance_id ) ); } $this->init(); $this->shippingRateFactory = $this->container->getByType( ShippingRateFactory::class ); } /** * Init user set variables. Derived from WC_Shipping_Flat_Rate. */ public function init(): void { // phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps $this->instance_form_fields = $this->get_instance_form_fields(); $this->title = $this->get_option( 'title' ); } public function get_admin_options_html(): string { $settingsHtml = $this->generate_settings_html( $this->get_instance_form_fields(), false ); return '