File "fieldAdapter.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/woo-product-filter/classes/fieldAdapter.php
File size: 5.79 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Class to adapt field before display
* return ONLY htmlParams property
*
* @see field
*/
class FieldAdapterWpf {
const DB = 'DbWpf';
const HTML = 'HtmlWpf';
const STR = 'str';
public static $userfieldDest = array('registration', 'shipping', 'billing');
public static $countries = array();
public static $states = array();
/**
* Executes field Adaption process
*
* @param object type field or value $fieldOrValue if DB adaption - this must be a value of field, elase if html - field object
*/
public static function _( $fieldOrValue, $method, $type ) {
if (method_exists('FieldAdapterWpf', $method)) {
switch ($type) {
case self::DB:
return self::$method($fieldOrValue);
break;
case self::HTML:
self::$method($fieldOrValue);
break;
case self::STR:
return self::$method($fieldOrValue);
break;
}
}
return $fieldOrValue;
}
public static function userFieldDestHtml( $field ) {
$field->htmlParams['OptionsWpf'] = array();
if (!is_array($field->value)) {
if (empty($field->value)) {
$field->value = array();
} else {
$field->value = json_decode($field->value);
}
}
foreach (self::$userfieldDest as $d) {
$field->htmlParams['OptionsWpf'][] = array(
'id' => $d,
'text' => $d,
'checked' => in_array($d, $field->value)
);
}
}
public static function userFieldDestToDB( $value ) {
return UtilsWpf::jsonEncode($value);
}
public static function userFieldDestFromDB( $value ) {
return UtilsWpf::jsonDecode($value);
}
public static function displayCountry( $cid, $key = 'name' ) {
if ('name' == $key) {
$countries = self::getCountries();
return $countries[$cid];
} else {
if (empty(self::$countries)) {
self::$countries = self::getCachedCountries();
}
foreach (self::$countries as $c) {
if ($c['id'] == $cid) {
return $c[ $key ];
}
}
}
return false;
}
public static function displayState( $sid, $key = 'name' ) {
$states = self::getStates();
return empty($states[$sid]) ? $sid : $states[$sid][$key];
}
public static function getCountries( $notSelected = false ) {
static $options = array();
if (empty($options[ $notSelected ])) {
$options[ $notSelected ] = array();
if (empty(self::$countries)) {
self::$countries = self::getCachedCountries();
}
if ($notSelected) {
$options[ $notSelected ][0] = is_bool($notSelected) ? esc_html__('Not selected', 'woo-product-filter') : esc_html__($notSelected);
}
foreach (self::$countries as $c) {
$options[ $notSelected ][$c['id']] = $c['name'];
}
}
return $options[ $notSelected ];
}
public static function getStates( $notSelected = false ) {
static $options = array();
if (empty($options[ $notSelected ])) {
$options[ $notSelected ] = array();
if (empty(self::$states)) {
self::$states = self::getCachedStates();
}
if ($notSelected) {
$notSelectedLabel = is_bool($notSelected) ? 'Not selected' : $notSelected;
$options[ $notSelected ][0] = array('name' => esc_html__( $notSelectedLabel ), 'country_id' => null);
}
foreach (self::$states as $s) {
$options[ $notSelected ][$s['id']] = $s;
}
}
return $options[ $notSelected ];
}
/**
* Function to get extra field options
*
* @param object $field
* @return string
*/
public static function getExtraFieldOptions( $field_id ) {
$output = '';
if (0 == $field_id) {
return '';
}
$options = FrameWpf::_()->getModule('OptionsWpf')->getHelper()->getOptions($field_id);
if (!empty($options)) {
foreach ($options as $key=>$value) {
$output .= '<p>' . $value . '<span class="delete_option" rel="' . $key . '"></span></p>';
}
}
return $output;
}
/**
* Function to get field params
*
* @param object $params
*/
public static function getFieldAttributes( $params ) {
$output = '';
if (!empty($params->attr)) {
foreach ($params->attr as $key=>$value) {
$output .= esc_html__($key) . ':<br />';
$output .= HtmlWpf::text('params[attr][' . $key . ']', array('value' => $value)) . '<br />';
}
} else {
$output .= esc_html__('class', 'woo-product-filter') . ':<br />';
$output .= HtmlWpf::text('params[attr][class]', array('value' => '')) . '<br />';
$output .= esc_html__('id', 'woo-product-filter') . ':<br />';
$output .= HtmlWpf::text('params[attr][id]', array('value' => '')) . '<br />';
}
return $output;
}
/**
* Generating the list of categories for product extra fields
*
* @param object $field
*/
public static function productFieldCategories( $field ) {
if (!empty($field->htmlParams['OptionsWpf'])) {
return;
}
}
public static function intToDB( $val ) {
return intval($val);
}
public static function floatToDB( $val ) {
return floatval($val);
}
/**
* Save this in static var - to futher usage
*
* @return array with countries
*/
public static function getCachedCountries( $clearCache = false ) {
if (empty(self::$countries) || $clearCache) {
self::$countries = FrameWpf::_()->getTable('countries')->getAll('id, name, iso_code_2, iso_code_3');
}
return self::$countries;
}
/**
* Save this in static var - to futher usage
*
* @return array with states
*/
public static function getCachedStates( $clearCache = false ) {
if (empty(self::$states) || $clearCache) {
self::$states = FrameWpf::_()->getTable('states')
->leftJoin( FrameWpf::_()->getTable('countries'), 'country_id' )
->getAll('toe_states.id,
toe_states.name,
toe_states.code,
toe_states.country_id,
toe_cry.name AS c_name,
toe_cry.iso_code_2 AS c_iso_code_2,
toe_cry.iso_code_3 AS c_iso_code_3');
}
return self::$states;
}
}