Generic selectors
Nur exakte Treffer
Suche im Titel
Suche im Inhalt
Post Type Selectors

Frage / Problem

Ich hab selbst versucht einen Filter einzubauen, der die Ausgabe von Produkten verhindert / überspringt, die keinen oder einen geringeren Wert als den bei der Variable MinSavingPercent angegebenen Wert haben. Leider ist AT zu komplex, als das ich hier auf einen grünen Zweig gekommen wäre. 😉

Antwort / Lösung

Damit man Produkte mittels Preisnachlass in einer Liste filtern kann, kann man diesen Filter nutzen. Es ergänzt die Liste um ein weiteres Feld "Minimum percentage".

Ist dieses Feld befüllt, wird die Liste nach dem Laden von der API nochmals gefiltert. Es werden damit nur Produkte angezeigt welche auch wirklich Minimum Percentage haben.

function atkp_list_modify_productlist_callback( $products, $list_id ) {	
	$minpercentage = ATKPTools::get_post_setting( $list_id, ATKP_LIST_POSTTYPE . '_minpercentage' );
	
	if($minpercentage == '' || $minpercentage == 0)
		return $products;
	
	$products_filtered = array();

	foreach($products as $product_arr) {
		if($product_arr['type'] != 'product') {
			$products_filtered[] = $product_arr;
			continue;
		}

		if(floatval($product_arr['value']->percentagesaved) > $minpercentage) {
			$products_filtered[] = $product_arr;
		}
	}
	return $products_filtered ;
}


add_filter( 'atkp_list_modify_productlist', 'atkp_list_modify_productlist_callback', 10,2);




function atkp_list_after_fields_callback($list_id) {
	$list_id = get_the_ID();
	?>
<tr>
            <th scope="row">
                <label for="">
					<?php _e( 'Minimum percentage', ATKP_PLUGIN_PREFIX ) ?>:
                </label>
            </th>
            <td>
                <input type="number" style="width:100%" id="<?php echo ATKP_LIST_POSTTYPE . '_minpercentage' ?>"
                       name="<?php echo ATKP_LIST_POSTTYPE . '_minpercentage' ?>"
                       value="<?php echo ATKPTools::get_post_setting($list_id, ATKP_LIST_POSTTYPE . '_minpercentage', true ); ?>">

            </td>
        </tr>
	<?php
}

add_action('atkp_list_after_fields', 'atkp_list_after_fields_callback', 10, 1);


function atkp_list_save_fields_callback($list_id) {
	$minpercentage  = ATKPTools::get_post_parameter( ATKP_LIST_POSTTYPE . '_minpercentage', 'int' );
	
	ATKPTools::set_post_setting( $list_id, ATKP_LIST_POSTTYPE . '_minpercentage', $minpercentage );
}

add_action('atkp_list_save_fields', 'atkp_list_save_fields_callback', 10, 1);

Füge dieses Snippet einfach in deine functions.php oder in ein Snippets-Plugin ein.

Aktualisiert: 19. Februar 2023
Verwenden Sie affiliate-toolkit noch nicht?
Die Einrichtung dauert weniger als 5 Minuten und schon können Sie die ersten Produkte importieren!
Erfahren Sie mehr über die PaketeKostenlose Version herunterladen
Brauchen Sie noch Hilfe?
Ihre Frage einreichen
Bitte geben Sie uns die Details, unser Support-Team wird sich mit Ihnen in Verbindung setzen.
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram