You are here

class Manual in Ubercart 8.4

Provides a manual fulfillment plugin.

Plugin annotation


@UbercartFulfillmentMethod(
  id = "manual",
  admin_label = @Translation("Ship Manually"),
  no_ui = TRUE
)

Hierarchy

Expanded class hierarchy of Manual

File

shipping/uc_fulfillment/src/Plugin/Ubercart/FulfillmentMethod/Manual.php, line 21

Namespace

Drupal\uc_fulfillment\Plugin\Ubercart\FulfillmentMethod
View source
class Manual extends FulfillmentMethodPluginBase {

  /**
   * {@inheritdoc}
   */
  public function defaultConfiguration() {
    return [
      'base_rate' => 0,
      'product_rate' => 0,
      'field' => '',
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
    $fields = [
      '' => $this
        ->t('- None -'),
    ];
    $result = \Drupal::entityQuery('field_config')
      ->condition('field_type', 'uc_price')
      ->execute();
    foreach (FieldConfig::loadMultiple($result) as $field) {
      $fields[$field
        ->getName()] = $field
        ->label();
    }
    $form['base_rate'] = [
      '#type' => 'uc_price',
      '#title' => $this
        ->t('Base price'),
      '#description' => $this
        ->t('The starting price for shipping costs.'),
      '#default_value' => $this->configuration['base_rate'],
      '#required' => TRUE,
    ];
    $form['product_rate'] = [
      '#type' => 'uc_price',
      '#title' => $this
        ->t('Default product shipping rate'),
      '#description' => $this
        ->t('Additional shipping cost per product in cart.'),
      '#default_value' => $this->configuration['product_rate'],
      '#required' => TRUE,
    ];
    $form['field'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Product shipping rate override field'),
      '#description' => $this
        ->t('Overrides the default shipping rate per product for this flat rate shipping method, when the field is attached to a product content type and has a value.'),
      '#options' => $fields,
      '#default_value' => $this->configuration['field'],
    ];
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
    $this->configuration['base_rate'] = $form_state
      ->getValue('base_rate');
    $this->configuration['product_rate'] = $form_state
      ->getValue('product_rate');
    $this->configuration['field'] = $form_state
      ->getValue('field');
  }

  /**
   * {@inheritdoc}
   */
  public function getDescription() {
    return $this
      ->t('No specific carrier, no pre-paid shipping labels');
  }

  /**
   * {@inheritdoc}
   */
  public function fulfillOrder(OrderInterface $order, array $package_ids) {
    $shipment = Shipment::create();
    $shipment
      ->setOrderId($order
      ->id());
    $packages = [];
    foreach ($package_ids as $id) {
      $package = Package::load($id);
      $packages[$id] = $package;
    }
    $shipment
      ->setPackages($packages);
    return \Drupal::formBuilder()
      ->getForm('\\Drupal\\uc_fulfillment\\Form\\ShipmentEditForm', $order, $shipment);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
FulfillmentMethodPluginBase::getConfiguration public function Gets this plugin's configuration. Overrides ConfigurableInterface::getConfiguration
FulfillmentMethodPluginBase::setConfiguration public function Sets the configuration for this plugin instance. Overrides ConfigurableInterface::setConfiguration
FulfillmentMethodPluginBase::validateConfigurationForm public function Form validation handler. Overrides PluginFormInterface::validateConfigurationForm
FulfillmentMethodPluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase::__construct
Manual::buildConfigurationForm public function Form constructor. Overrides FulfillmentMethodPluginBase::buildConfigurationForm
Manual::defaultConfiguration public function Gets default configuration for this plugin. Overrides FulfillmentMethodPluginBase::defaultConfiguration
Manual::fulfillOrder public function Fulfills the order using this method. Overrides FulfillmentMethodPluginInterface::fulfillOrder
Manual::getDescription public function Returns a description of this shipping method. Overrides FulfillmentMethodPluginInterface::getDescription
Manual::submitConfigurationForm public function Form submission handler. Overrides FulfillmentMethodPluginBase::submitConfigurationForm
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.