Hookverzeichnis
Auf dieser Seite finden Sie eine Sammlung verschiedenster Filter Hooks, um Plugin Ausgaben oder Daten zu verändern.
In der Dokumentation sind weitere Filter Hooks direkt bei den beschriebenen Funktionen zu finden, zum Beispiel zur Fahrzeug-Übersicht, Fahrzeug-Einzelansicht, Kontakformular, etc…
Custom Fields
DXIM_FILTER_VEHICLE_FIELD_key
* = key, welcher das Custom Field repräsentiert
Um z.B. die Ausgabe des Kraftstoffs zu verändern, nutzen sie den Hook DXIM_FILTER_VEHICLE_FIELD_FUEL
Beispiel:
add_filter(DXIM_FILTER_VEHICLE_FIELD_FUEL,'_filter_fuel'],10,3);
function _filter_fuel($value, $key, $vehicle) {
return "...";
}
Filterformular
DXIM_FILTER_FORM_FILTERS_ARRAY
Dieser Hook liefert das Array, in welchem alle Möglichen Filter definiert sind. Hier können einzelne Filter verändert oder entfernt werden, oder auch eigenen Filter hinzugefügt werden.
Beispiel
add_filter(DXIM_FILTER_FORM_FILTERS_ARRAY,'_my_custom_filter',10,1);
function _my_custom_filter($filters) {
// verändern des filters maximaler Preis von Slider nach Auswahlbox
$filters['price_max']['type'] = "select";
// keine Mehrfachauswahl für
$filters['price_max']['multiple'] = 0;
// Options Elemente für Select-Box füllen
$filters['price_max']['value'] = ['values here'];
return $filters;
}
DXIM_FILTER_FORM_SELECT_DATA
Dieser Hook liefert ein Array mit allen Werten zu einem Filter
Beispiel
Umsortierung der Hersteller
add_filter(DXIM_FILTER_FORM_SELECT_DATA,'_my_custom_function',10,2);
function _my_custom_function($data, $field) {
if ($field == "make") {
$new_array = [];
if (isset($data['VW'])) $new_array['VW'] = $data['VW'];
if (isset($data['AUDI'])) $new_array['AUDI'] = $data['AUDI'];
unset($data['VW'], $data['AUDI']);
$data = array_merge($new_array, $data);
}
return $data;
}
Fahrzeug - Import
DXIM_FILTER_VEHICLE_BEFORE_IMPORT
Mit diesem Hook können sie Fahrzeuge gänzlich vom Import ausschließen.
Parameter 1: $data (liefert das zu importierende Fahrzeug inkl. aller Werte)
Rückgabewerte:
- das übergebene (oder modifierte) Fahrzeug $data aus Parameter 1
- null um den Import des Fahrzeuges zu überspringen
Beispiel:
Importiert nur Fahrzeuge die NEU oder Tageszulassungen sind
add_filter(DXIM_FILTER_VEHICLE_BEFORE_IMPORT,'_my_filter_wpcs_import',10,1);
function _my_filter_wpcs_import($data) {
if(
$data['post_meta']['specific_condition'] == "NEW" ||
($data['post_meta']['specific_condition'] == "USED" && $data['post_meta']['specific_usage_type'] == "DEMONSTRATION")
) {
return $data;
}
return null;
}
Template
DXIM_FILTER_SELECT_LOOP_TEMPLATE
Mit diesem Hook überschreiben sie zur Laufzeit das zu ladende Template, welches ein Fahrzeug in einer Liste darstellt
add_filter(DXIM_FILTER_SELECT_LOOP_TEMPLATE,'_my_template',10,1);
function _my_template($template_file) {
return "path/to/new/template.php";
}
Permalinks
DXIM_FILTER_REWRITE_RULES
Mit diesem Hook lässt sich die Url Struktur für Fahrzeug – Archiv und Einzelansicht ändern
add_filter(DXIM_FILTER_REWRITE_RULES,'_my_rules',10,1);
function _my_rules($rules) {
// modify rules array here
return $rules;
}
DXIM_FILTER_VEHICLE_PERMALINK
Mit diesem Hook ändern sie den Permalink eines Fahrzeuges. Nur notwendig, wenn Sie die Permalink Struktur mittels DXIM_FILTER_REWRITE_RULES angepasst haben.
Parameter 1: der originale Link zum Fahrzeug
Parameter 2: Array mit den einzelnen Linkbestandteilen
Parameter 3: (WP_POST) das Fahrzeug
add_filter(DXIM_FILTER_VEHICLE_PERMALINK,'_my_custom_link',10,3);
function _my_custom_link($link, $data_link, $vehicle) {
// modify rules array here
return $rules;
}
Fahrzeugabfrage
DXIM_FILTER_FORM_GLOBAL_FILTERS
Setzt einen globalen Filter
Beispiel 1: Seite mit ID 123 zeigt Marke Peugeot
add_action(DXIM_FILTER_FORM_GLOBAL_FILTERS, function($globalData) {
$current_page = \DXIM\VehicleFilter::getInstance()->getCurrentPage();
if($current_page != 123) return $globalData;
$globalData['make'] = "PEUGEOT";
return $globalData;
},10,1);
Beispiel 2: Seite mit ID 123 exkludiert Marke Peugeot
add_action(DXIM_FILTER_FORM_GLOBAL_FILTERS, function($globalData) {
$current_page = \DXIM\VehicleFilter::getInstance()->getCurrentPage();
if($current_page != 123) return $globalData;
$globalData['make'] = "PEUGEOT";
$field = VehicleFields::getField("make");
$field['meta_query']['compare'] = "!=";
VehicleFields::setField("make", $field);
return $globalData;
},10,1);
DXIM_FILTER_VEHICLE_SQL_ADD_CONDITION
Ergänzen Sie die Mysql Query mit weiteren Bedingungen
Beispiel: Seite mit ID 123 soll nur sofort verfügbare Fahrzeuge anzeigen
add_action(DXIM_FILTER_VEHICLE_SQL_ADD_CONDITION, function($sql) {
$current_page = \DXIM\VehicleFilter::getInstance()->getCurrentPage();
if($current_page != 123) return $sql;
$sql .= " AND delivery_date <= NOW() ";
return $sql;
},10,1);
DXIM_FILTER_VEHICLE_QUERY_ORDERBY_SQL
Ändert die Orderby – Klausel der MySql-Query der Fahrzeugabfrage
add_filter(DXIM_FILTER_VEHICLE_QUERY_ORDERBY_SQL, function($sql, $orderby, $order) {
$new_order = "ORDER BY post_name ASC";
return $new_order;
},10,3);
DXIM_FILTER_QUERIED_VEHICLE_DATA
Wird für jedes Fahrzeug aufgerufen, nach dem es aus der Datenbank abgerufen wurde. Fahrzeug-Daten können an dieser Stelle temporär zur Laufzeit geändert werden
SEO / Schema
‚dxim_filter_schema_POST_TYPE‘
WPCarSync stellt für einige PostTypes strukturierte Daten bereit, die Suchmaschinen die Bedeutung der einzelnen Seite besser verstehen lassen. Die Zeichenkette POST_TYPE im Hook muss durch den Namen des PostTypes ersetzt werden, dessen Daten verändert werden sollen.
Hier ein Beispiel, um die strukturierten Daten für den Post Type „vehicle“ zu verändern:
add_filter('dxim_filter_schema_vehicle', function($schema, $post) {
$schema['name'] = "Mein neuer Fahrzeugname";
return $schema;
},10,1);
Formularelemente
DXIM_FILTER_WPCSSELECT_NOTHING_SELECTED_TEXT
Verwenden Sie diesen Hook, um die Anzeige für „keine Auswahl“ des Select – Elements zu verändern, Standard ist „- – -„
DXIM_FILTER_FILTERFORM_LABEL
Hook zum ändern der Feldbeschriftungen / Feldnamen
Parameter 1: Originaltext (z.B. bei Hersteller „make“)
Parameter 2: Array mit dem aktuellen Filter
add_filter(DXIM_FILTER_FILTERFORM_LABEL,'_filter_filterform_label',10,2);
function _filter_filterform_label($text,$filter) {
if($filter == "make") $text = "Manufacturer";
return $text;
}
DXIM_FILTER_SPECIFICS_LABEL
Hook zum ändern der Namen der angezeigten Werte.
Parameter 1: Originaltext
Parameter 2: Array mit Angaben zum entsprechenden Feld
Beispiel:
add_filter(DXIM_FILTER_SPECIFICS_LABEL,'_filter_filter_label',10,2);
function _filter_filter_label($text,$data) {
if($data['key'] == "general_inspection") $text = "zugelassen am";
return $text;
}
DXIM_FILTER_PAGINATION_SEPARATOR
Trennerzeichen der Seitennummerierung
Parameter 1: Plugin original HTML
DXIM_FILTER_FORM_ORDER_ARRAY
Filtert das Array der Sortierkriterien
Beispiel:
Preis aus den Sortierkriterien entfernen.
add_filter(DXIM_FILTER_FORM_ORDER_ARRAY,function($orderArray) {
unset($orderArray['price']);
return $orderArray;
},10,1);