Custom XML feed for WooCommerce VARIABLE products. Create PHP file inside Root of WP, Access that file via filename.php?action=whatever.
<?php
require_once('wp-load.php');
//die;
$query_args = array(
'post_type' => 'product_variation',
'post_status' => 'publish',
'posts_per_page' => '-1',
'meta_query' => array(
'0' => array(
'key' => '_stock',
'value' => '1',
'compare' => '>=',
),
'relation' => 'AND',
),
);
if (!empty($_GET['action'])) {
$query_args = array(
'post_type' => 'product_variation',
'post_status' => 'publish',
'posts_per_page' => '4975',
'meta_query' => array(
'0' => array(
'key' => '_stock',
'value' => '1',
'compare' => '>=',
),
'relation' => 'AND',
),
);
}
// The Query
$the_query = new WP_Query($query_args);
$xml = new SimpleXMLElement('<xml/>');
// The Loop
if ($the_query->have_posts()) {
while ($the_query->have_posts()) {
$the_query->the_post();
$product = wc_get_product(get_the_ID());
$parent = wc_get_product($product->get_parent_id());
$track = $xml->addChild('product');
$track->addChild('SKU', $product->get_sku());
$track->addChild('ID', $product->get_id());
$track->addChild('maat', $product->get_attribute('maten'));
$track->addChild('kleur', $parent->get_attribute('kleuren'));
$track->addChild('materiaal', $parent->get_attribute('materiaal'));
$track->addChild('afbeeldingslink', wp_get_attachment_url($product->get_image_id()));
$afb = $track->addChild('extra_afbeeldingslinks');
$x = 0;
foreach ($parent->get_gallery_image_ids() as $id) {
$x++;
$afb->addChild('afbeelding_' . $x, wp_get_attachment_url($id));
}
$track->addChild('titel', $product->get_name());
$track->addChild('beschrijving', htmlentities($parent->get_description(), ENT_XML1));
$track->addChild('extra_beschrijving', htmlentities($parent->get_short_description(), ENT_XML1));
$track->addChild('plateauhoogte', $parent->get_attribute('plateauhoogte'));
$track->addChild('hakhoogte', $parent->get_attribute('hakhoogte'));
$track->addChild('type_hak', $parent->get_attribute('haksoort'));
$track->addChild('Rits', $parent->get_attribute('rits'));
$track->addChild('Plateau_in_cm', $parent->get_attribute('plateauhoogte'));
$track->addChild('Neussoort', $parent->get_attribute('neussoort'));
$track->addChild('prijs', $product->get_regular_price());
$track->addChild('sale_prijs', $product->get_sale_price());
$track->addChild('staat', "Nieuw");
$track->addChild('Beschikbaarheid', "Op voorraad");
$track->addChild('MPN', $product->get_sku());
}
$count = $the_query->post_count;
Header('Content-type: text/xml');
print($xml->asXML());
wp_reset_postdata();
} else {
}
?>
