| Server IP : 5.129.245.98 / Your IP : 216.73.217.19 Web Server : Apache/2.4.66 (Debian) System : Linux 1b8c17c336b9 6.8.0-111-generic #111-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 11 23:16:02 UTC 2026 x86_64 User : www-data ( 33) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/html/wp-content/plugins/wpai-acf-add-on/src/fields/acf/radio/ |
Upload File : |
<?php
namespace wpai_acf_add_on_pro\fields\acf\radio;
use pmai_acf_add_on\ACFService;
use pmai_acf_add_on\fields\Field;
/**
* Class FieldRadio
* @package pmai_acf_add_on\fields\acf\radio
*/
class FieldRadio extends Field {
/**
* Field type key
*/
public $type = 'radio';
/**
*
* Parse field data
*
* @param $xpath
* @param $parsingData
* @param array $args
*/
public function parse($xpath, $parsingData, $args = array()) {
parent::parse($xpath, $parsingData, $args);
if ("yes" == $this->getOption('is_multiple_field')) {
$value = $this->getOption('multiple_value');
if (!is_array($value)) {
$values = array_fill(0, $this->getOption('count'), $value);
}
else {
$values = array();
foreach ($value as $single_value) {
$values[] = array_fill(0, $this->getOption('count'), $single_value);
}
$this->setOption('is_multiple', TRUE);
}
}
else {
$values = $this->getByXPath($xpath);
}
$this->setOption('values', $values);
}
/**
* @param $importData
* @param array $args
* @return mixed
*/
public function import($importData, $args = array()) {
$isUpdated = parent::import($importData, $args);
if (!$isUpdated){
return FALSE;
}
ACFService::update_post_meta($this, $this->getPostID(), $this->getFieldName(), $this->getFieldValue());
}
/**
* @return false|int|mixed|string
*/
public function getFieldValue() {
$value = parent::getFieldValue();
$parsedData = $this->getParsedData();
$field_post = get_post($parsedData['id']);
if ($field_post){
$field_post_options = unserialize($field_post->post_content);
if (!empty($field_post_options['save_other_choice']) && !empty($value)){
if (!isset($field_post_options['choices'][$value])){
$field_post_options['choices'][$value] = $value;
}
wp_update_post(array(
'post_content' => maybe_serialize($field_post_options),
'ID' => $parsedData['id']
));
}
}
if ($parsedData['is_multiple']) {
$value = (!empty($value) && is_array($value)) ? $value : array();
}
return $value;
}
/**
*
* If radio field is not set with XPath then it means it has empty value
* in case it is inside repeater field.
*
* @return int
*/
public function getCountValues($parentIndex = false) {
$count = 0;
if ("yes" !== $this->getOption('is_multiple_field')){
$count = parent::getCountValues($parentIndex);
}
return $count;
}
}