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. 😉
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.
Sie sehen gerade einen Platzhalterinhalt von Facebook. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie müssen den Inhalt von hCaptcha laden, um das Formular abzuschicken. Bitte beachten Sie, dass dabei Daten mit Drittanbietern ausgetauscht werden.
Mehr InformationenSie müssen den Inhalt von reCAPTCHA laden, um das Formular abzuschicken. Bitte beachten Sie, dass dabei Daten mit Drittanbietern ausgetauscht werden.
Mehr InformationenSie müssen den Inhalt von reCAPTCHA laden, um das Formular abzuschicken. Bitte beachten Sie, dass dabei Daten mit Drittanbietern ausgetauscht werden.
Mehr InformationenSie müssen den Inhalt von reCAPTCHA laden, um das Formular abzuschicken. Bitte beachten Sie, dass dabei Daten mit Drittanbietern ausgetauscht werden.
Mehr InformationenSie müssen den Inhalt von Turnstile laden, um das Formular abzuschicken. Bitte beachten Sie, dass dabei Daten mit Drittanbietern ausgetauscht werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von Instagram. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von X. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen