class ShippingMethodCondition in Ubercart 8.4
Provides an 'Order shipping method' condition.
Plugin annotation
@Condition(
  id = "uc_quote_condition_order_shipping_method",
  label = @Translation("Order has a shipping quote from a particular method"),
  category = @Translation("Order: Shipping Quote"),
  context_definitions = {
    "order" = @ContextDefinition("entity:uc_order",
      label = @Translation("Order")
    ),
    "method" = @ContextDefinition("string",
      label = @Translation("Shipping method"),
      list_options_callback = "shippingMethodOptions"
    )
  }
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface- class \Drupal\Component\Plugin\ContextAwarePluginBase implements ContextAwarePluginInterface- class \Drupal\Core\Plugin\ContextAwarePluginBase implements CacheableDependencyInterface, ContextAwarePluginInterface uses DependencySerializationTrait, StringTranslationTrait, TypedDataTrait- class \Drupal\Core\Executable\ExecutablePluginBase implements ExecutableInterface- class \Drupal\Core\Condition\ConditionPluginBase implements ConditionInterface uses ContextAwarePluginAssignmentTrait- class \Drupal\rules\Core\RulesConditionBase implements RulesConditionInterface uses ContextProviderTrait, ConfigurationAccessControlTrait, ExecutablePluginTrait- class \Drupal\uc_quote\Plugin\Condition\ShippingMethodCondition implements ContainerFactoryPluginInterface
 
 
- class \Drupal\rules\Core\RulesConditionBase implements RulesConditionInterface uses ContextProviderTrait, ConfigurationAccessControlTrait, ExecutablePluginTrait
 
- class \Drupal\Core\Condition\ConditionPluginBase implements ConditionInterface uses ContextAwarePluginAssignmentTrait
 
- class \Drupal\Core\Executable\ExecutablePluginBase implements ExecutableInterface
 
- class \Drupal\Core\Plugin\ContextAwarePluginBase implements CacheableDependencyInterface, ContextAwarePluginInterface uses DependencySerializationTrait, StringTranslationTrait, TypedDataTrait
 
- class \Drupal\Component\Plugin\ContextAwarePluginBase implements ContextAwarePluginInterface
Expanded class hierarchy of ShippingMethodCondition
File
- shipping/uc_quote/ src/ Plugin/ Condition/ ShippingMethodCondition.php, line 29 
Namespace
Drupal\uc_quote\Plugin\ConditionView source
class ShippingMethodCondition extends RulesConditionBase implements ContainerFactoryPluginInterface {
  /**
   * The entity type manager service.
   *
   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
   */
  protected $entityTypeManager;
  /**
   * {@inheritdoc}
   */
  public function summary() {
    return $this
      ->t("Order has a shipping quote from a particular method");
  }
  /**
   * Constructs a ShippingMethodCondition object.
   *
   * @param array $configuration
   *   A configuration array containing information about the plugin instance.
   * @param string $plugin_id
   *   The plugin ID for the plugin instance.
   * @param mixed $plugin_definition
   *   The plugin implementation definition.
   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager
   *   The entity type manager service.
   */
  public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entityTypeManager) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->entityTypeManager = $entityTypeManager;
  }
  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
    return new static($configuration, $plugin_id, $plugin_definition, $container
      ->get('entity_type.manager'));
  }
  /**
   * Shipping options callback.
   *
   * @return array
   *   Array of all enabled shipping methods.
   */
  public function shippingMethodOptions() {
    $options = [];
    $methods = $this->entityTypeManager
      ->getStorage('uc_quote_method')
      ->loadByProperties([
      'status' => TRUE,
    ]);
    uasort($methods, 'Drupal\\uc_quote\\Entity\\ShippingQuoteMethod::sort');
    foreach ($methods as $method) {
      $options[$method
        ->id()] = $method
        ->label();
    }
    return $options;
  }
  /**
   * Checks an order's shipping method.
   *
   * @param \Drupal\uc_order\OrderInterface $order
   *   The order.
   * @param string $method
   *   Name of shipping method.
   *
   * @return bool
   *   TRUE if the order was placed with the selected shipping method.
   */
  protected function doEvaluate(OrderInterface $order, $method) {
    // Check the easy way first.
    if (!empty($order->quote)) {
      return $order->quote['method'] == $method;
    }
    // Otherwise, look harder.
    if (!empty($order->line_items)) {
      $methods = $this->moduleHandler
        ->invokeAll('uc_shipping_method');
      $accessorials = $methods[$method]['quote']['accessorials'];
      foreach ($order->line_items as $line_item) {
        if ($line_item['type'] == 'shipping' && in_array($line_item['title'], $accessorials)) {
          return TRUE;
        }
      }
    }
    return FALSE;
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| ConditionPluginBase:: | protected | property | The condition manager to proxy execute calls through. | |
| ConditionPluginBase:: | public | function | Form constructor. Overrides PluginFormInterface:: | 5 | 
| ConditionPluginBase:: | public | function | Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: | |
| ConditionPluginBase:: | public | function | Gets default configuration for this plugin. Overrides ConfigurableInterface:: | 5 | 
| ConditionPluginBase:: | public | function | Executes the plugin. Overrides ExecutableInterface:: | |
| ConditionPluginBase:: | public | function | Gets this plugin's configuration. Overrides ConfigurableInterface:: | |
| ConditionPluginBase:: | public | function | Determines whether condition result will be negated. Overrides ConditionInterface:: | |
| ConditionPluginBase:: | public | function | Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: | |
| ConditionPluginBase:: | public | function | Sets the executable manager class. Overrides ConditionInterface:: | |
| ConditionPluginBase:: | public | function | Form submission handler. Overrides PluginFormInterface:: | 5 | 
| ConditionPluginBase:: | public | function | Form validation handler. Overrides PluginFormInterface:: | |
| ConfigurationAccessControlTrait:: | public | function | Checks configuration permission. | |
| ContextAwarePluginAssignmentTrait:: | protected | function | Builds a form element for assigning a context to a given slot. | |
| ContextAwarePluginAssignmentTrait:: | protected | function | Wraps the context handler. | |
| ContextAwarePluginAssignmentTrait:: | abstract protected | function | Ensures the t() method is available. | |
| ContextAwarePluginBase:: | protected | property | The data objects representing the context of this plugin. | |
| ContextAwarePluginBase:: | private | property | Data objects representing the contexts passed in the plugin configuration. | |
| ContextAwarePluginBase:: | protected | function | Overrides ContextAwarePluginBase:: | |
| ContextAwarePluginBase:: | public | function | The cache contexts associated with this object. Overrides CacheableDependencyInterface:: | 9 | 
| ContextAwarePluginBase:: | public | function | The maximum age for which this object may be cached. Overrides CacheableDependencyInterface:: | 7 | 
| ContextAwarePluginBase:: | public | function | The cache tags associated with this object. Overrides CacheableDependencyInterface:: | 4 | 
| ContextAwarePluginBase:: | public | function | This code is identical to the Component in order to pick up a different
Context class. Overrides ContextAwarePluginBase:: | |
| ContextAwarePluginBase:: | public | function | Overrides ContextAwarePluginBase:: | |
| ContextAwarePluginBase:: | public | function | Overrides ContextAwarePluginBase:: | |
| ContextAwarePluginBase:: | public | function | Gets a mapping of the expected assignment names to their context names. Overrides ContextAwarePluginInterface:: | |
| ContextAwarePluginBase:: | public | function | Gets the defined contexts. Overrides ContextAwarePluginInterface:: | |
| ContextAwarePluginBase:: | public | function | Gets the values for all defined contexts. Overrides ContextAwarePluginInterface:: | |
| ContextAwarePluginBase:: | public | function | Set a context on this plugin. Overrides ContextAwarePluginBase:: | |
| ContextAwarePluginBase:: | public | function | Sets a mapping of the expected assignment names to their context names. Overrides ContextAwarePluginInterface:: | |
| ContextAwarePluginBase:: | public | function | Sets the value for a defined context. Overrides ContextAwarePluginBase:: | |
| ContextAwarePluginBase:: | public | function | Validates the set values for the defined contexts. Overrides ContextAwarePluginInterface:: | |
| ContextAwarePluginBase:: | public | function | Implements magic __get() method. | |
| ContextProviderTrait:: | protected | property | The data objects that are provided by this plugin. | |
| ContextProviderTrait:: | public | function | ||
| ContextProviderTrait:: | public | function | ||
| ContextProviderTrait:: | public | function | ||
| ContextProviderTrait:: | public | function | ||
| DependencySerializationTrait:: | protected | property | An array of entity type IDs keyed by the property name of their storages. | |
| DependencySerializationTrait:: | protected | property | An array of service IDs keyed by property name used for serialization. | |
| DependencySerializationTrait:: | public | function | 1 | |
| DependencySerializationTrait:: | public | function | 2 | |
| ExecutablePluginBase:: | public | function | Gets all configuration values. | |
| ExecutablePluginBase:: | public | function | Gets the definition of a configuration option. | |
| ExecutablePluginBase:: | public | function | Gets an array of definitions of available configuration options. | |
| ExecutablePluginBase:: | public | function | Sets the value of a particular configuration option. | |
| ExecutablePluginTrait:: | protected | function | Get the translated label from the plugin definition. | |
| PluginBase:: | protected | property | Configuration information passed into the plugin. | 1 | 
| PluginBase:: | protected | property | The plugin implementation definition. | 1 | 
| PluginBase:: | protected | property | The plugin_id. | |
| PluginBase:: | constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
| PluginBase:: | public | function | Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: | |
| PluginBase:: | public | function | Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: | |
| PluginBase:: | public | function | Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: | 3 | 
| PluginBase:: | public | function | Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: | |
| PluginBase:: | public | function | Determines if the plugin is configurable. | |
| RulesConditionBase:: | public | function | Asserts additional metadata for the selected data. Overrides ContextAwarePluginInterface:: | 1 | 
| RulesConditionBase:: | public | function | Evaluates the condition and returns TRUE or FALSE accordingly. Overrides ConditionInterface:: | 5 | 
| RulesConditionBase:: | public | function | Gets the value for a defined context. Overrides ContextAwarePluginBase:: | |
| RulesConditionBase:: | public | function | Negates the result after evaluating this condition. Overrides RulesConditionInterface:: | |
| RulesConditionBase:: | public | function | Refines used and provided context definitions based upon context values. Overrides ContextAwarePluginInterface:: | 1 | 
| ShippingMethodCondition:: | protected | property | The entity type manager service. | |
| ShippingMethodCondition:: | public static | function | Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: | |
| ShippingMethodCondition:: | protected | function | Checks an order's shipping method. | |
| ShippingMethodCondition:: | public | function | Shipping options callback. | |
| ShippingMethodCondition:: | public | function | Get the translated summary from the label annotation. Overrides ExecutablePluginTrait:: | |
| ShippingMethodCondition:: | public | function | Constructs a ShippingMethodCondition object. Overrides ConditionPluginBase:: | |
| StringTranslationTrait:: | protected | property | The string translation service. | 1 | 
| StringTranslationTrait:: | protected | function | Formats a string containing a count of items. | |
| StringTranslationTrait:: | protected | function | Returns the number of plurals supported by a given language. | |
| StringTranslationTrait:: | protected | function | Gets the string translation service. | |
| StringTranslationTrait:: | public | function | Sets the string translation service to use. | 2 | 
| TypedDataTrait:: | protected | property | The typed data manager used for creating the data types. | |
| TypedDataTrait:: | public | function | Gets the typed data manager. | 2 | 
| TypedDataTrait:: | public | function | Sets the typed data manager. | 2 | 
