Skip to content

Instantly share code, notes, and snippets.

<?php
<?php
/**
* Snippet: Choose the pricing display per product in WooCommerce Product Add-Ons Ultimate.
*
* List product IDs in the arrays below to set how prices are shown on each product page:
*
* - 'totals' : the standard totals fields (Product total, Options total, Grand total)
* - 'summary' : the summary panel only (no totals fields underneath)
* - 'none' : no pricing summary at all (no summary panel, no totals fields)
<?php
/**
* Variable Select layout: show the attribute name and value in the variation dropdown,
* e.g. 'Magazijn: Hillegom (137375-A)'
*/
function prefix_variable_select_variation_name_only( $name, $product, $option_price = false, $item = false ) {
if ( empty( $item['products_layout'] ) || 'variable-select' !== $item['products_layout'] ) {
return $name;
}
<?php
/**
* WooCommerce Product Add-Ons Ultimate: show a custom label for specific
* linked products in Products fields (e.g. "Long Traction Bar" -> "Long Bed").
*
* Key = product ID (use the variation ID for a specific variation)
* Value = label the customer sees
*/
function prefix_pewc_child_product_aliases() {
return array(
<?php
/**
* Force Booking products to be treated as shippable (override the plugin's
* hardcoded set_virtual( true ) on WC_Product_Booking), so WooCommerce's own
* shipping logic — including the Blocks/Store API checkout, which doesn't
* reliably respect the bfwc_hide_shipping_fields filter — sees them as
* non-virtual and shows shipping fields.
*/
add_filter( 'woocommerce_product_get_virtual', 'my_bfwc_booking_not_virtual', 10, 2 );
add_filter( 'woocommerce_product_variation_get_virtual', 'my_bfwc_booking_not_virtual', 10, 2 );
<?php
/**
* Dequeue dropzone sitewide
*/
add_action( 'wp_print_scripts', 'my_dequeue_pewc_dropzone', 100 );
add_action( 'wp_print_styles', 'my_dequeue_pewc_dropzone', 100 );
function my_dequeue_pewc_dropzone() {
wp_dequeue_script( 'pewc-dropzone' );
wp_deregister_script( 'pewc-dropzone' );
<?php
/**
* Snippet: Add a 'Shipping speed' radio field (Standard / Express) to the checkout page,
* inside the order review table immediately below the subtotal row and above the
* shipping/payment method options.
*
* Selecting 'Express' adds a 15% fee based on the cart's current total.
* The field is saved to the order as post meta and shown on the admin order screen.
*
* Usage: add this file as an mu-plugin, or require it from your theme/child-theme
<?php
add_filter( 'woocommerce_order_item_display_meta_value', 'my_pewc_hide_field_value_by_type', 20, 3 );
function my_pewc_hide_field_value_by_type( $display_value, $meta, $order_item ) {
if ( ! is_admin() ) {
return $display_value;
}
// Field types to hide the entered value for (price-only display)
$target_types = array( 'radio-group', 'calculation' );
<?php
/**
* Change day into night
*/
function my_bfwc_filter_unit_labels( $labels ) {
$labels['day'] = array(
'single' => __( 'Night', 'bfwc' ),
'plural' => __( 'Nights', 'bfwc' ),
);
return $labels;
<?php
add_filter( 'bfwc_after_add_to_cart_button', '__return_false' );
<?php
/**
* Exclude specific products from a Product Categories field type
* Edit the $excluded_ids array below with the product IDs you want
* to hide. If you need different exclusions per field, check $args['category'] to
* identify the field and apply exclusions conditionally.
*/
add_filter( 'pewc_get_products_for_cats_args', function( $args ) {
// IDs of products to exclude from all Product Categories fields.