File: /var/www/shoetique/wp-content/plugins/wp-all-export-pro/src/App/Field/Description.php
<?php
namespace Wpae\App\Field;
class Description extends Field
{
const SECTION = 'basicInformation';
private $basicInformationData = null;
public function getValue($snippetData)
{
$this->basicInformationData = $this->feed->getSectionFeedData(self::SECTION);
if($this->entry->post_type === 'product') {
return $this->getDescription($this->entry);
}
else if($this->entry->post_type === 'product_variation') {
if($this->basicInformationData['useVariationDescriptionForVariableProducts']) {
$variation_description = get_post_meta($this->entry->ID, '_variation_description');
if(!empty($variation_description[0])) {
if(!empty($variation_description[0])) {
if(empty($variation_description[0])) {
$postParent = get_post($this->entry->post_parent);
if(is_object($postParent)) {
$parentDescription = $this->getDescription($postParent);
} else {
$parentDescription = '';
}
return $parentDescription;
}
return $variation_description[0];
} else {
$parentDescription = $this->getDescription(get_post($this->entry->post_parent));
return $parentDescription;
}
} else {
$parentDescription = $this->getDescription(get_post($this->entry->post_parent));
return $parentDescription;
}
} else {
return $this->getDescription(get_post($this->entry->post_parent));
}
} else {
throw new \Exception('Unknown export entity type');
}
}
public function getFieldName()
{
return 'description';
}
/**
* @param $product
* @return mixed
* @throws \Exception
* @internal param $entry
* @internal param $basicInformationData
*/
private function getDescription($product)
{
if ($this->basicInformationData['itemDescription'] == 'productDescription') {
return $product->post_content;
} else if ($this->basicInformationData['itemDescription'] == 'productShortDescription') {
return $product->post_excerpt;
} else if ($this->basicInformationData['itemDescription'] == self::CUSTOM_VALUE_TEXT) {
return $this->basicInformationData['itemDescriptionCV'];
} else {
throw new \Exception('Unknown field value');
}
}
}