Přeskočit na obsah

Pro vývojáře

Hlavní filtr pro úpravu nebo doplnění dat produktu ve feedu.

add_filter( 'wpify_woo_xml_feed_heureka_item_data', function( $data, $product, $parent_product ) {
// Úprava dat
return $data;
}, 10, 3 );
ParametrTypPopis
$dataarrayData produktu pro XML
$productWC_ProductProdukt (varianta pokud existuje)
$parent_productWC_ProductHlavní produkt

Vrací: array

Použití krátkého popisu:

add_filter( 'wpify_woo_xml_feed_heureka_item_data', function( $data, $product, $parent_product ) {
if ( $product->get_short_description() ) {
$data['DESCRIPTION'] = array( '_cdata' => $product->get_short_description() );
} elseif ( $parent_product->get_short_description() ) {
$data['DESCRIPTION'] = array( '_cdata' => $parent_product->get_short_description() );
}
return $data;
}, 10, 3 );

Přidání MANUFACTURER:

add_filter( 'wpify_woo_xml_feed_heureka_item_data', function( $data, $product ) {
$manufacturer = $product->get_attribute( 'vyrobce' );
if ( $manufacturer ) {
$data['MANUFACTURER'] = array( '_cdata' => $manufacturer );
}
return $data;
}, 10, 2 );

Doprava zdarma nad 1500 Kč:

add_filter( 'wpify_woo_xml_feed_heureka_item_data', function( $data, $product ) {
if ( $product->get_price() > 1500 ) {
foreach ( $data as $key => $item ) {
if ( strpos( $key, '__custom:DELIVERY' ) !== false && $item['DELIVERY_ID'] === 'ZASILKOVNA' ) {
$data[$key]['DELIVERY_PRICE'] = 0;
$data[$key]['DELIVERY_PRICE_COD'] = 30;
}
}
}
return $data;
}, 10, 2 );

Přidání alternativních obrázků:

add_filter( 'wpify_woo_xml_feed_heureka_item_data', function( $data, $product ) {
$gallery_ids = $product->get_gallery_image_ids();
foreach ( $gallery_ids as $id ) {
$data['__custom:IMGURL_ALTERNATIVE:' . $id] = array(
'_cdata' => wp_get_attachment_url( $id )
);
}
return $data;
}, 10, 2 );

Filtr pro vyloučení produktu z feedu.

add_filter( 'wpify_woo_xml_heureka_skip_product', function( $skip, $product ) {
// Vrátit true pro vyloučení
return $skip;
}, 10, 2 );
ParametrTypPopis
$skipboolfalse výchozí (nezařadit)
$productWC_ProductProdukt

Vrací: bool - true pro vyloučení

Vyloučení dle ID:

add_filter( 'wpify_woo_xml_heureka_skip_product', function( $skip, $product ) {
return in_array( $product->get_id(), array( 19, 20, 21 ) );
}, 10, 2 );

Vyloučení dle kategorie:

add_filter( 'wpify_woo_xml_heureka_skip_product', function( $skip, $product ) {
$excluded = array( 15, 16 ); // ID kategorií
return count( array_intersect( $excluded, $product->get_category_ids() ) ) > 0;
}, 10, 2 );

Filtrování dle jazyka (Polylang):

add_filter( 'wpify_woo_xml_heureka_skip_product', function( $skip, $product ) {
if ( ! function_exists( 'pll_get_post_language' ) ) {
return $skip;
}
$desired_lang = 'cs'; // Jazyk pro feed (cs, sk, en, ...)
$product_lang = pll_get_post_language( $product->get_id(), 'slug' );
// Vyloučit produkty v jiném jazyce
if ( $product_lang && $product_lang !== $desired_lang ) {
return true;
}
return $skip;
}, 10, 2 );

Filtrování dle jazyka (WPML):

add_filter( 'wpify_woo_xml_heureka_skip_product', function( $skip, $product ) {
$desired_lang = 'cs'; // Jazyk pro feed
$product_lang = apply_filters( 'wpml_post_language_details', null, $product->get_id() );
if ( $product_lang && isset( $product_lang['language_code'] ) && $product_lang['language_code'] !== $desired_lang ) {
return true;
}
return $skip;
}, 10, 2 );

Upravuje počet produktů zpracovaných v jednom kroku generování.

add_filter( 'wpify_woo_feed_products_per_page', function( $count ) {
return 20; // Výchozí je 100
} );
ParametrTypPopis
$countintPočet produktů (výchozí 100)

Vrací: int


Upravuje jazyk pro načítání Heureka kategorií.

add_filter( 'wpify_woo_feed_heureka_categories_lang', function( $lang ) {
return 'sk'; // Výchozí je 'cz'
} );

Upravuje argumenty pro načítání WooCommerce kategorií při mapování.

add_filter( 'wpify_heureka_categories_assignment', function( $args ) {
$args['hide_empty'] = true; // Skrýt prázdné kategorie
return $args;
} );
PoleMeta klíč
Název produktu Heureka_wpify_woo_heureka_product_name
Produkt Heureka_wpify_woo_heureka_product
Kategorie Heureka_wpify_woo_heureka_category

Kompletní seznam podporovaných tagů najdete ve specifikaci XML souboru Heureky.