| Server IP : 5.129.245.98 / Your IP : 216.73.216.246 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/ |
Upload File : |
<?php
namespace wpai_acf_add_on_pro\fields\acf;
use pmai_acf_add_on\ACFService;
use pmai_acf_add_on\fields\Field;
/**
* Class FieldPageLink
* @package pmai_acf_add_on\fields\acf
*/
class FieldPageLink extends Field {
/**
* Field type key
*/
public $type = 'page_link';
/**
*
* Parse field data
*
* @param $xpath
* @param $parsingData
* @param array $args
*/
public function parse($xpath, $parsingData, $args = array()) {
parent::parse($xpath, $parsingData, $args);
$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() {
$post_ids = array();
$entries = explode(",", parent::getFieldValue());
$field = $this->getData('field');
if ( ! empty($entries) and is_array($entries) ) {
$entries = array_map('trim', $entries);
$entries = array_filter($entries);
foreach ($entries as $ev) {
$args = array(
'name' => $ev,
'post_type' => empty($field['post_type']) ? 'any' : $field['post_type'],
'post_status' => 'any',
'numberposts' => 1
);
$my_posts = get_posts($args);
if ($my_posts) {
$post_ids[] = $my_posts[0]->ID;
}
elseif (ctype_digit($ev)) {
$args = array(
'post_type' => empty($field['post_type']) ? 'any' : $field['post_type'],
'numberposts' => 1,
'post__in'=> [$ev]
);
$my_posts = get_posts($args);
if ($my_posts) {
$post_ids[] = $my_posts[0]->ID;
}
}
}
}
if (!empty($post_ids)) {
return empty($field['multiple']) ? array_shift($post_ids) : $post_ids;
}
return '';
}
}