# packeta/2.3.1/src/Packetery/Module/Carrier/CarrierOptionsFactory.php

Packeta, version 2.3.1. 64 lines.

- Page: https://pluginprobe.com/plugins/packeta/2.3.1/code/src/Packetery/Module/Carrier/CarrierOptionsFactory.php
- Raw: https://pluginprobe.com/plugins/packeta/2.3.1/raw/src/Packetery/Module/Carrier/CarrierOptionsFactory.php
- Modified: 2025-03-10T10:47:38+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/packeta/2.3.1/code/src/Packetery/Module/Carrier/CarrierOptionsFactory.php#L10-L20`.

```php
<?php
/**
 * CarrierOptionsFactory class.
 *
 * @package Packetery
 */

declare( strict_types=1 );

namespace Packetery\Module\Carrier;

use Packetery\Module\Framework\WpAdapter;

/**
 * CarrierOptionsFactory class.
 */
class CarrierOptionsFactory {

	/**
	 * WP adapter.
	 *
	 * @var WpAdapter
	 */
	private $wpAdapter;

	/**
	 * Constructor.
	 *
	 * @param WpAdapter $wpAdapter WP adapter.
	 */
	public function __construct( WpAdapter $wpAdapter ) {
		$this->wpAdapter = $wpAdapter;
	}

	/**
	 * Creates carrier options by option id.
	 *
	 * @param string $optionId Option id.
	 *
	 * @return Options
	 */
	public function createByOptionId( string $optionId ): Options {
		$options = $this->wpAdapter->getOption( $optionId );
		if ( ! isset( $options ) || $options === false ) {
			$options = [];
		}

		return new Options( $optionId, $options );
	}

	/**
	 * Creates instance by carrier ID.
	 *
	 * @param string $carrierId Carrier ID.
	 *
	 * @return Options
	 */
	public function createByCarrierId( string $carrierId ): Options {
		$optionId = OptionPrefixer::getOptionId( $carrierId );

		return $this->createByOptionId( $optionId );
	}
}

```
