modern-events-calendar-lite/app/addons/ACF.php

59 lines
No EOL
1.4 KiB
PHP
Executable file

<?php
/** no direct access **/
defined('MECEXEC') or die();
/**
* Webnus MEC ACF addon class
* @author Webnus <info@webnus.net>
*/
class MEC_addon_ACF extends MEC_base
{
/**
* @var MEC_factory
*/
public $factory;
/**
* Constructor method
* @author Webnus <info@webnus.net>
*/
public function __construct()
{
// MEC Factory class
$this->factory = $this->getFactory();
}
/**
* Initialize the ACF addon
* @author Webnus <info@webnus.net>
*/
public function init()
{
$this->factory->action('mec_wc_product_created', [$this, 'sync_acf_fields'], 10, 2);
$this->factory->action('mec_wc_product_updated', [$this, 'sync_acf_fields'], 10, 2);
}
/**
* @param int $product_id
* @param int $event_id
* @return void
*/
public function sync_acf_fields($product_id, $event_id)
{
// ACF Plugin is not installed and activated
if(!class_exists('ACF')) return;
// Event ACF Data
$data = get_fields($event_id, false);
// Data is invalid
if(!is_array($data)) return;
if(!count($data)) return;
// Store data for Product
foreach($data as $key => $value)
{
update_field($key, $value, $product_id);
}
}
}