Wholesale Suite plugins stellen PHP hooks en filters beschikbaar. U kunt ze gebruiken om prijzen, formulieren, e-mails, offertes en betalingsgedrag te wijzigen zonder pluginbestanden te bewerken. Dit artikel laat zien hoe u uw eigen code aan een hook toevoegt en somt de hooks op die bedoeld zijn voor gebruik in uw eigen code, met hun argumenten en wat ze wijzigen. Het is een selectie, niet elke hook die de plugins afvuren.
Elke tabel somt de hooknaam, het type, de argumenten en wat deze wijzigt op. Een filter moet een waarde retourneren. Een actie retourneert geen waarde.
Voeg uw code toe aan een hook
- Kies waar u uw code wilt toevoegen: het
functions.phpbestand van een child theme, of een code snippets plugin. - Zoek de hook die u nodig heeft in de onderstaande plugin tabellen. Noteer het type en de argumenten.
- Voeg uw snippet toe met
add_filter()voor een filter ofadd_action()voor een actie. De voorbeelden in de plugin secties tonen het patroon. - Sla het bestand op.
- Test de wijziging op een staging site voordat u deze toevoegt aan uw live winkel.
Bewerk de pluginbestanden niet. Een plugin update vervangt ze en verwijdert uw wijziging.
Hooks van een Wholesale Suite plugin draaien alleen wanneer die plugin actief is. Bijvoorbeeld, de WooCommerce Wholesale Prices Premium hooks vereisen WooCommerce Wholesale Prices Premium op uw site.
De hook details in dit artikel komen overeen met deze plugin versies: WooCommerce Wholesale Prices 2.3.1, WooCommerce Wholesale Prices Premium 2.1.5, WooCommerce Wholesale Order Form 3.1.3, WooCommerce Wholesale Lead Capture 2.0.7, WooCommerce Wholesale Quotes 1.0.3, WooCommerce Wholesale Payments 1.0.8, en Invoice Gateway for WooCommerce 1.1.7.
WooCommerce Wholesale Prices
WooCommerce Wholesale Prices voegt hooks toe rond de wholesale prijsvelden in het WooCommerce quick edit paneel. Het heeft ook een filter om de AI-mogelijkheden van Wholesale Suite uit te schakelen. Voor meer informatie over mogelijkheden, zie Hoe AI-mogelijkheden te gebruiken in Wholesale Suite.
| Hook | Type | Argumenten | Wat het wijzigt |
|---|---|---|---|
wwp_before_quick_edit_wholesale_price_fields | Actie | $all_wholesale_roles (array, geregistreerde wholesale rollen) | Draait in het quick edit paneel, vóór de Wholesale Price velden. Gebruik het om uw eigen markup af te drukken. Het draait niet wanneer de wwp_product_editor_show_wholesale_prices_fields filter false retourneert. |
wwp_after_quick_edit_wholesale_price_fields | Actie | $all_wholesale_roles (array, geregistreerde wholesale rollen) | Draait in het quick edit paneel, na de Wholesale Price velden. Het volgt dezelfde regel als de 'before' hook. |
wwp_quick_edit_allowed_product_types | Filter | $allowed_product_types (array, standaard simple en external)$context (string, wholesale_price_fields) | Stelt in welke producttypes de wholesale prijsvelden in quick edit tonen en opslaan. Het stelt ook in welke producten de wholesale prijsgegevens in de productlijst krijgen. |
wwp_product_editor_show_wholesale_prices_fields | Filter | $show (bool, standaard true) | Return false om de groothandelsprijsvelden in de producteditor en bij snelle bewerking te verbergen. |
wwp_disable_abilities | Filter | $disabled (bool, standaard false) | Retourneer true om de AI-mogelijkheden van Wholesale Suite uit te schakelen. Dit schakelt ook de mogelijkheden van de andere Wholesale Suite-plugins uit, omdat deze zich registreren via WooCommerce Wholesale Prices. |
Voorbeeld: voeg een opmerking toe onder de groothandelsprijsvelden
Dit voorbeeld drukt een korte opmerking af na de groothandelsprijsvelden bij snelle bewerking.
add_action( 'wwp_after_quick_edit_wholesale_price_fields', function ( $all_wholesale_roles ) {
echo '<p>' . esc_html__( 'Enter prices without tax.', 'your-text-domain' ) . '</p>';
} );
WooCommerce Wholesale Prices Premium
WooCommerce Wholesale Prices Premium heeft hooks voor staffelkortingen, winkelwagenkortingen, minimale bestelcontroles, rapporten en de REST API. Alle hooks in dit gedeelte vereisen WooCommerce Wholesale Prices Premium.
| Hook | Type | Argumenten | Wat het wijzigt |
|---|---|---|---|
wwpp_quantity_based_discount_base_price | Filter | $base_price (float|string, de prijs waarvan staffelkortingen uitgaan)$mapping (array, staffelkortingsregels)$raw_wholesale_price (float|string)$product (WC_Product)$wholesale_role (array) | Wijzigt de basisprijs waarvan staffelkortingen uitgaan. De basis is de actieve groothandelsprijs als die er is, anders de groothandelsprijs. Wanneer de winkelinstelling die de reguliere prijs gebruikt voor kortingsberekening is ingeschakeld, is de basis de reguliere prijs. |
wwpp_cart_subtotal_discount_eligible_item | Filter | $is_eligible (bool, standaard true)$cart_item (array, winkelwagenitemgegevens)$wholesale_role (array) | Bepaalt of een winkelwagenitem meetelt voor het subtotaal dat wordt gebruikt voor de korting op het winkelwagensubtotaal. Retourneer false om het item uit te sluiten. |
wwpp_min_order_requirement_check | Filter | $apply (bool, het resultaat van de controle)$cart_total (float, groothandelswinkelwagentotaal)$cart_items (float, totale aantal items)$cart (WC_Cart)$wholesale_role (array) | Wijzigt het resultaat van de minimale bestelcontrole voor winkelwagenkortingen. De korting op het winkelwagensubtotaal is alleen van toepassing wanneer het resultaat exact true is. |
wwpp_add_wholesale_role_general_discount_mapping | Actie | Geen | Wordt uitgevoerd nadat een algemene korting is opgeslagen voor een groothandelsrol. |
wwpp_edit_wholesale_role_general_discount_mapping | Actie | Geen | Wordt uitgevoerd nadat de algemene korting van een groothandelsrol is bijgewerkt. |
wwpp_process_category_products_in_api | Filter | $products_in_api (bool, standaard false)$category_id (int, de categorie term ID) | Stelt in welke code de groothandelsprijsvlaggen van de producten in een categorie bijwerkt. Wanneer het true retourneert, voert de REST API van de categoriekorting de update uit en slaat het scherm voor categoriebewerking deze over. |
wwpp_meta_data | Filter | $meta_data (array, groothandelsgegevens, lege waarden verwijderd)$product (WC_Product)$request (WP_REST_Request) | Wijzigt de groothandelsgegevens die de groothandelsproducten REST API retourneert voor een product. |
wwpp_api_update_wholesale_roles_filter | Filter | $wholesale_roles (array, alle geregistreerde rollen)$request (WP_REST_Request) | Wijzigt de lijst met groothandelsrollen voordat de REST API deze opslaat. Het wordt uitgevoerd wanneer een rol wordt aangemaakt of bijgewerkt via de API. |
wwpp_reports_sales_transient_expiration_constant | Filter | $expiration (int, seconden, standaard HOUR_IN_SECONDS) | Stelt in hoe lang de reactie van het verkooprapport in de cache blijft. |
wwpp_disable_abilities | Filter | $disabled (bool, standaard false) | Retourneer true om de functionaliteiten uit te schakelen die deze plugin registreert. |
Voorbeeld: sluit een productcategorie uit van de korting op het subtotaal van de winkelwagen
Dit voorbeeld laat artikelen in de categorie gift-cards buiten beschouwing bij het subtotaal dat de korting op het winkelwagen subtotaal gebruikt.
add_filter( 'wwpp_cart_subtotal_discount_eligible_item', function ( $is_eligible, $cart_item, $wholesale_role ) {
if ( has_term( 'gift-cards', 'product_cat', $cart_item['product_id'] ) ) {
return false;
}
return $is_eligible;
}, 10, 3 );
WooCommerce Wholesale Order Form
WooCommerce Wholesale Order Form heeft hooks voor de REST-verzoeken van het bestelformulier, productzoekopdrachten, variatielading en formulier-scripts.
| Hook | Type | Argumenten | Wat het wijzigt |
|---|---|---|---|
wwof_rest_read_permissions | Filter | $permission (bool, het resultaat van de regels van het bestelformulier)$object_id (int|string, de object ID, of 0 voor een collectie)$post_type (string, post type of taxonomie) | Verleent of weigert een REST-leesactie die de regels van het bestelformulier hebben geweigerd. Het wordt alleen uitgevoerd voor leesacties in de weergavecontext op de routes die het bestelformulier gebruikt. Een ware waarde bereikt nooit een object dat niet gepubliceerd is. |
wwof_wc_rest_prepare_product_object | Filter | $response (WP_REST_Response)$wc_data (WC_Product)$request (WP_REST_Request)$wc (WC, het WooCommerce-integratieobject van het bestelformulier) | Wijzigt de productgegevens die het REST-verzoek van het bestelformulier retourneert voor een product. |
wwof_product_type_terms | Filter | $product_type_terms (array, producttype slugs) | Stelt de producttypen in die het bestelformulier weergeeft. De standaard is simple, grouped en external wanneer variaties individueel worden weergegeven. Anders is ook variable inbegrepen. Voeg een type toe, zoals bundle, om het weer te geven. |
wwof_search_post_clauses_request | Filter | $clauses (array, SQL-clausules)$wc (WC, het WooCommerce-integratieobject van het bestelformulier) | Wijzigt de SQL-clausules van de productzoekopdracht in het bestelformulier. |
wwof_force_load_form_posts | Filter | $form_posts (array, standaard leeg) | Forceert het bestelformulier-script om op een pagina te laden. Retourneer een array van bestelformulierobjecten, gesleuteld op formulier-ID, wanneer de shortcode niet wordt gedetecteerd. |
wwof_login_url | Filter | $login_url (string) | Wijzigt de inlog-URL die het bestelformulier-script gebruikt. |
wwof_min_requirement_current_user_id | Filter | $user_id (int, standaard is de huidige gebruikers-ID) | Wijzigt de gebruikers-ID die het bestelformulier gebruikt om minimale bestelvereisten op te zoeken. |
wwof_required_plugins | Filter | $required_plugins (array, plugin bestandspaden) | Wijzigt de lijst met plugins die actief moeten zijn. Het bestelformulier rapporteert elke vermelde plugin die niet actief is. |
wwof_after_register_order_form_post_type | Actie | $post_type (string, de naam van het bestelformulier post type) | Wordt uitgevoerd nadat het bestelformulier post type is geregistreerd. |
wwof_variations_max_requests | Filter | $variations_max_requests (int, standaard 12) | Stelt in hoeveel variatielijstaanvragen het bestelformulier tegelijkertijd verstuurt. De laagste waarde is 1. |
wwof_variations_response_cache_bypass | Filter | $bypass (bool, standaard false)$request (WP_REST_Request)$user_id (int, 0 voor gasten) | Retourneer true om de variaties respons cache te omzeilen voor een aanvraag. Gebruik het wanneer een andere plugin prijzen per gebruiker of per sessie instelt. |
wwof_variations_response_cache_ttl | Filter | $ttl (int, seconden, standaard 5 minuten)$request (WP_REST_Request)$product_id (int, de ID van het bovenliggende product) | Stelt in hoe lang een variaties respons in de cache blijft. |
wwof_disable_abilities | Filter | $disable (bool, standaard false) | Retourneer true om de functionaliteiten uit te schakelen die deze plugin registreert. |
Voorbeeld: verkort de variaties cache
Dit voorbeeld houdt variaties responsen een minuut in de cache.
add_filter( 'wwof_variations_response_cache_ttl', function ( $ttl, $request, $product_id ) {
return MINUTE_IN_SECONDS;
}, 10, 3 );
WP-CLI commando: migreer bestelformulieren
Voer dit commando uit om bestelformulieren van het versie 2-formaat naar het versie 3-formaat te migreren. Het commando slaat een kopie van de oude instellingen van elk formulier op in de _settings post meta voordat het formulier wordt gemigreerd.
wp wwof migrate_forms_settings
Om slechts enkele formulieren te migreren, voeg één of meer bestelformulier-ID's toe na de commando naam:
wp wwof migrate_forms_settings 123 456
Zonder ID's migreert het commando alle versie 2-formulieren. Als het geen formulieren vindt, toont het de foutmelding Geen formulieren gevonden.
De plugin heeft ook twee extra WP-CLI commando's. Gebruik wp wwof export_order_forms [<format>] om formulieren te exporteren als json of yml. Gebruik wp wwof import_v2_forms_from_json_file <json_file_path> om versie 2 formulieren te importeren uit een JSON-bestand.
WooCommerce Wholesale Lead Capture
WooCommerce Wholesale Lead Capture heeft hooks voor de lead levenscyclus, het registratieformulier, login redirects, e-mails en de Leads REST API. Elke lead actie geeft een WP_User object door.
| Hook | Type | Argumenten | Wat het wijzigt |
|---|---|---|---|
wwlc_action_before_approve_user | Actie | $user (WP_User) | Wordt uitgevoerd voordat WooCommerce Wholesale Lead Capture een lead goedkeurt. |
wwlc_action_after_approve_user | Actie | $user (WP_User) | Wordt uitgevoerd nadat de lead is goedgekeurd en de goedkeuringsmail is verzonden. |
wwlc_action_before_reject_user | Actie | $user (WP_User) | Wordt uitgevoerd voordat een lead wordt afgewezen. Wordt niet uitgevoerd voor een lead die al is afgewezen. |
wwlc_action_after_reject_user | Actie | $user (WP_User) | Wordt uitgevoerd nadat een lead is afgewezen. De lead krijgt de rol 'Rejected' (Afgekeurd), of het account wordt verwijderd als de instellingen dat aangeven. |
wwlc_action_before_activate_user | Actie | $user (WP_User) | Wordt uitgevoerd voordat een leadaccount wordt geactiveerd. |
wwlc_action_after_activate_user | Actie | $user (WP_User) | Wordt uitgevoerd nadat een leadaccount als actief is gemarkeerd. |
wwlc_action_before_deactivate_user | Actie | $user (WP_User, de rollen vóór de wijziging) | Wordt uitgevoerd voordat een leadaccount wordt gedeactiveerd. Wordt ook uitgevoerd wanneer de Leads REST API een lead deactiveert. |
wwlc_action_after_deactivate_user | Actie | $user (WP_User) | Wordt uitgevoerd nadat een leadaccount is gedeactiveerd. De gebruiker krijgt de rol 'customer' (klant) en wordt uit alle sessies uitgelogd. |
wwlc_action_after_create_wholesale_lead | Actie | $new_lead (WP_User) | Wordt uitgevoerd nadat een lead zich heeft geregistreerd, en nadat automatische goedkeuring is verwerkt. Wordt ook uitgevoerd wanneer een bestaande klant een groothandelsaccount aanvraagt. |
wwlc_stop_registering | Filter | $stop (bool, standaard false)$user_data (array, de ingediende formuliergegevens) | Retourneer true om de registratie te stoppen. Het formulier toont de foutmelding "U mag zich niet registreren." |
wwlc_login_redirect_url | Filter | $redirect_url (string)$user (WP_User) | Wijzigt de URL waar een gebruiker naartoe gaat na het inloggen op het groothandelsloginformulier. Geldt ook voor een WooCommerce-login (bijvoorbeeld Mijn Account) wanneer de gebruiker een groothandelsrol heeft. |
wwlc_registration_form_fields | Filter | $form_fields (array, standaard-, aangepaste en reCAPTCHA-velden, gesorteerd op volgorde) | Wijzigt de velden die het registratieformulier toont. |
wwlc_filter_{field}_field_form_label | Filter | $label (string, het vertaalde standaardlabel) | Wijzigt het label van een standaardregistratieveld. Vervang {field} door een van de volgende: first_name, last_name, phone, email, company, country, address1, address2, city, state, postcode, password. Bijvoorbeeld: wwlc_filter_first_name_field_form_label. |
wwlc_email_format_string | Filter | $text (string, e-mailinhoud na vervanging van placeholders)$wc_email (WC_Email) | Wijzigt de tekst van een Wholesale Lead Capture-e-mail nadat de placeholders zijn vervangen. |
wwlc_default_email_lead_role | Filter | $role (string, standaard wholesale_customer) | Stelt de rol in die wordt gebruikt om de voorbeeldlead voor de e-mailobjecten te selecteren. De rol die is ingesteld in de instelling voor leadrollen, overschrijft deze wanneer die instelling niet leeg is. |
wwlc_rest_api_routes | Filter | $routes (array, route definities) | Voegt routes toe aan of wijzigt de routes van de Leads REST API in de wwlc/v1 namespace. Elke route is geindexeerd als leads/<route>. |
wwlc_disable_abilities | Filter | $disabled (bool, standaard false) | Retourneer true om de functionaliteiten die deze plugin registreert uit te schakelen. De constante WWLC_DISABLE_ABILITIES doet hetzelfde. |
Voorbeeld: code uitvoeren wanneer je een lead goedkeurt
Dit voorbeeld slaat een vlag op bij de gebruiker na goedkeuring. Een synchronisatiescript kan de vlag later lezen.
add_action( 'wwlc_action_after_approve_user', function ( $user ) {
update_user_meta( $user->ID, 'needs_crm_sync', 'yes' );
} );
WooCommerce Wholesale Quotes
WooCommerce Wholesale Quotes heeft filters voor offertegegevens, het label van de offerteknop, frontendopties en REST API-machtigingen.
| Hook | Type | Argumenten | Wat het wijzigt |
|---|---|---|---|
wholesale_quotes_api_admin_permissions_check | Filter | $response (true|WP_Error, true wanneer de gebruiker manage_woocommerce heeft)$request (WP_REST_Request) | Wijzigt de machtigingscontrole van de admin REST-routes. Retourneer true om het verzoek toe te staan, of een WP_Error om het te weigeren. |
wholesale_quotes_quote_items_data | Filter | $data (array, offerte-artikelobjecten) | Wijzigt de lijst met offerte-artikelen voordat de plugin deze gebruikt. Het is van toepassing op de artikelen van een offerte en op de lijst met offerte-artikelen. |
wholesale_quotes_quote_item_product_data | Filter | $product (array, productgegevens van het offerte-artikel)$item_product_id (int) | Wijzigt de productgegevens van een offerte-artikel. De gegevens bevatten de afbeelding, link, voorraadstatus en producttype. |
wws_wq_quote_button_shop_label | Filter | $label (string, standaard is het label in de offerte-instellingen) | Wijzigt het label van de offerteknop op winkelpagina's. |
wws_wq_guest_quote_products_data | Filter | $products (array, offerte-artikelobjecten)$product_data (array, de productgegevens uit het verzoek) | Wijzigt de producten die de gastofferte REST-route retourneert. |
wholesale_quotes_options | Filter | $options (array, frontendopties) | Wijzigt de opties-array die de offertefrontend gebruikt. Het heeft sleutels zoals title, description en quoteUrl. |
wwq_disable_abilities | Filter | $disabled (bool, standaard false) | Retourneer true om de functionaliteiten uit te schakelen die deze plugin registreert. |
Voorbeeld: wijzig het label van de offerteknop
Dit voorbeeld wijzigt het label van de offerteknop op winkelpagina's.
add_filter( 'wws_wq_quote_button_shop_label', function ( $label ) {
return __( 'Request pricing', 'your-text-domain' );
} );
WooCommerce Wholesale Payments
WooCommerce Wholesale Payments heeft filters voor het factuurschema, het betalingsplan en bestelqueries, de Stripe API-versie en herinnerings-e-mailsjablonen.
| Hook | Type | Argumenten | Wat het wijzigt |
|---|---|---|---|
wpay_filter_cron_schedule | Filter | $cron_schedule (string, standaard is het opgeslagen schema, daily indien geen) | Stelt het interval in van de terugkerende factuuractie. De plugin leest deze alleen wanneer deze de actie aanmaakt, dus deze wijzigt geen bestaand schema. Gebruik daily, hourly, of 15min. Elke andere waarde draait dagelijks. |
wpay_get_payment_plans | Filter | $args (array, WP_Query argumenten) | Wijzigt de queryargumenten die betalingsplannen laden. De plugin stelt het berichttype in nadat de filter is uitgevoerd. |
wpay_get_payment_orders | Filter | $args (array, wc_get_orders() argumenten) | Wijzigt de queryargumenten die betalingsbestellingen laden. De plugin beperkt de paginagrootte nadat de filter is uitgevoerd. |
wpay_stripe_api_version | Filter | $version (string, de Stripe API-versie die de plugin gebruikt) | Wijzigt de Stripe API-versie in de request header. Het stelt ook de versie in wanneer de plugin een Stripe webhook aanmaakt. |
wpay_payment_due_today_email_template_html | Filter | $template (string, standaard payment-due-today.php) | Wijzigt het HTML-sjabloonbestand van de e-mail voor vandaag te betalen facturen. |
wpay_payment_due_today_email_template_plain | Filter | $template (string, standaard payment-due-today.php) | Wijzigt het platte tekst-sjabloonbestand van de e-mail voor vandaag te betalen facturen. |
wpay_payment_overdue_email_template_html | Filter | $template (string, standaard payment-overdue.php) | Wijzigt het HTML-sjabloonbestand van de e-mail voor achterstallige betalingen. |
wpay_payment_overdue_email_template_plain | Filter | $template (string, standaard payment-overdue.php) | Wijzigt het platte tekst-sjabloonbestand van de e-mail voor achterstallige betalingen. |
wpay_disable_abilities | Filter | $disabled (bool, standaard false) | Retourneer true om de functionaliteiten uit te schakelen die deze plugin registreert. |
Invoice Gateway voor WooCommerce
Invoice Gateway voor WooCommerce heeft hooks voor de factuurvervaldatum, de bestelstatus, gratis bestellingen en achterstallige facturen.
| Hook | Type | Argumenten | Wat het wijzigt |
|---|---|---|---|
igfw_invoice_due_date | Filter | $due (int, Unix timestamp)$order (WC_Order) | Wijzigt de vervaldatum van een factuurovereenkomst. De standaard is de besteldatum plus de betalingstermijn in dagen. Een waarde van 0 of minder wordt genegeerd. |
igfw_invoice_gateway_default_order_status | Filter | $status (string, standaard is de opgeslagen bestelstatus, on-hold indien geen) | Wijzigt de status die de gateway aan een bestelling geeft bij het afrekenen. |
igfw_show_invoice_gateway_on_free_orders | Filter | $show (bool, standaard true) | Retourneer false om de factuur-gateway te verbergen wanneer het winkelwagen-totaal nul is. |
igfw_invoice_gateway_construct | Actie | Geen | Wordt uitgevoerd aan het einde van de constructor van de factuur-gateway. |
igfw_invoice_payment_overdue | Actie | $order (WC_Order, de achterstallige bestelling) | Wordt uitgevoerd wanneer de plugin een achterstallige factuurovereenkomst vindt, nadat deze de achterstallige e-mail naar de winkelbeheerder heeft verzonden. De plugin brengt de bestelling niet in rekening. Gebruik deze hook om uw eigen proces te starten. |
Voorbeeld: voeg zeven dagen toe aan de vervaldatum van de factuur
Dit voorbeeld verplaatst elke factuurvervaldatum zeven dagen later.
add_filter( 'igfw_invoice_due_date', function ( $due, $order ) {
return $due + ( 7 * DAY_IN_SECONDS );
}, 10, 2 );
Wat hierna te lezen
Hulp nodig?
Als je een vraag hebt of tegen problemen aanloopt, staan we klaar om te helpen.
- Premium gebruikers: Open een ondersteuningsticket
- Gratis gebruikers: Bezoek ons communityforum
