File "SpecialActionFieldsFactory.php"
Full Path: /home/jlklyejr/public_html/wp-content/test/test/test/wp-content/plugins/flexible-shipping/src/WPDesk/FS/TableRate/Rule/SpecialAction/SpecialActionFieldsFactory.php
File size: 2.01 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Class RuleSpecialActionFieldsFactory
*
* @package WPDesk\FS\TableRate\Rule\SpecialAction
*/
namespace WPDesk\FS\TableRate\Rule\SpecialAction;
use FSVendor\WPDesk\Forms\Field;
use FSVendor\WPDesk\Forms\Field\InputTextField;
use FSVendor\WPDesk\Forms\FieldProvider;
use FSVendor\WPDesk\Forms\Renderer\JsonNormalizedRenderer;
use WPDesk\FS\TableRate\Rule\SpecialAction\SpecialAction;
/**
* Can create special action fields.
*/
class SpecialActionFieldsFactory implements FieldProvider {
/**
* @var SpecialAction[]
*/
private $available_special_actions;
/**
* RuleSpecialActionFieldsFactory constructor.
*
* @param SpecialAction[] $available_special_actions .
*/
public function __construct( array $available_special_actions ) {
$this->available_special_actions = $available_special_actions;
}
/**
* @return Field[]
*/
public function get_fields() {
return apply_filters( 'flexible_shipping_rule_special_action_fields', $this->get_built_in_rule_special_actions_fields() );
}
/**
* .
*
* @return array
*/
public function get_normalized_cost_fields() {
$normalized_cost_fields = array();
$renderer = new JsonNormalizedRenderer();
return $renderer->render_fields( $this, array() );
}
/**
* @return Field[]
*/
public function get_built_in_rule_special_actions_fields() {
return array(
( new Field\SelectField() )
->set_name( 'special_action' )
->set_options( $this->get_special_action_options() )
->add_class( 'hs-beacon-search' )
->add_class( 'special-action' )
->add_data( 'beacon_search', __( 'special action', 'flexible-shipping' ) ),
);
}
/**
* @return array
*/
private function get_special_action_options() {
$options = array();
foreach ( $this->available_special_actions as $special_action ) {
$options[] = array(
'value' => $special_action->get_special_action_id(),
'label' => $special_action->get_name(),
'description' => $special_action->get_description(),
);
}
return $options;
}
}