Skip to content

Instantly share code, notes, and snippets.

@jorpdesigns
jorpdesigns / add-shortcode-html-widget.php
Created July 13, 2021 19:24
Snippet to add shortcodes to HTML widgets
<?php
add_filter( 'widget_text', 'do_shortcode' );
?>
@jorpdesigns
jorpdesigns / acf-taxonomy-depth.php
Created July 13, 2021 19:21
Snippet to add ACF taxonomy depth rules for subcategories
<?php
//ADD RULE TO SECTION
add_filter('acf/location/rule_types', 'acf_location_rules_types');
function acf_location_rules_types( $choices )
{
$choices['Other']['taxonomy_depth'] = 'Taxonomy Depth';
return $choices;
}
@jorpdesigns
jorpdesigns / set-acf-field-default-value.php
Created July 13, 2021 19:19
Snippet to programmatically set ACF field default value
<?php
add_filter('acf/load_field/name=custom_field', 'populate_custom_field');
function populate_custom_field( $field ) {
global $post;
$postID = $post->ID;
$field['default_value'] = 'Default Value';
}
?>
@jorpdesigns
jorpdesigns / add-order-again-button.php
Last active July 13, 2021 19:22
Snippet to add "Order Again" button to WooCommerce order actions
<?php
add_filter( 'woocommerce_my_account_my_orders_actions', 'add_order_again_to_my_orders_actions', 50, 2 );
function add_order_again_to_my_orders_actions( $actions, $order ) {
if ( $order->has_status( 'completed' ) ) {
$actions['order-again'] = array(
'url' => wp_nonce_url( add_query_arg( 'order_again', $order->get_id() ) , 'woocommerce-order_again' ),
'name' => __( 'Order Again', 'woocommerce' )
);
}
@jorpdesigns
jorpdesigns / modify-order-item-name.php
Last active July 12, 2021 17:34
Snippet to modify item name in WooCommerce order email
<?php
add_filter( 'woocommerce_order_item_name', 'add_sample_prefix', 20, 3 );
function add_sample_prefix( $item_name, $item, $is_visible ) {
$item_name .= ' - new name';
return $item_name;
}
?>
@jorpdesigns
jorpdesigns / autocomplete-virtual-orders.php
Last active July 12, 2021 17:34
Snippet to automatically mark WooCommerce orders containing only virtual products as completed
<?php
add_action('woocommerce_order_status_changed', 'auto_complete_virtual_orders');
function auto_complete_virtual_orders($order_id) {
if ( ! $order_id ) {
return;
}
$order = wc_get_order( $order_id );
if ($order->data['status'] == 'processing') {
@jorpdesigns
jorpdesigns / custom-products-backend-attribute-filter.php
Created July 12, 2021 17:30
Snippet to show attribute as custom filter in WooCommerce products backend
<?php
add_filter( 'woocommerce_product_filters', 'products_custom_backend_filter' );
function products_custom_backend_filter( $output ) {
global $wp_query;
$output .= wc_product_dropdown_categories( array(
'show_option_none' => 'Filter by brands', // Replace with your own placeholder
'taxonomy' => 'pa_brand', // Replace with your own attribute
'name' => 'pa_brand', // Replace with your own attribute
@jorpdesigns
jorpdesigns / full-product-loop.php
Created July 12, 2021 17:26
Function to create full WooCommerce product loop
<?php
function full_products_loop() {
if ( ! is_admin() ) {
if(!function_exists('wc_get_products')) {
return;
}
ob_start();
@jorpdesigns
jorpdesigns / custom-product-loop.php
Created July 12, 2021 17:24
Function to return custom WooCommerce product loop
<?php
// Shortcode attributes: Limit, Category, Key
function custom_product_loop( $atts ) {
// Attributes
$atts = shortcode_atts(
array(
'limit' => -1,
@jorpdesigns
jorpdesigns / hide-addon-price.php
Created July 12, 2021 17:18
Snippet to hide WooCommerce Product Addons option price if 0
<?php
add_filter( 'woocommerce_product_addons_option_price', 'filter_product_addons_option_price', 10, 4 );
function filter_product_addons_option_price( $price, $option, $i, $type ){
if ( $option['price'] == 0 ) {
$price = '';
}
return $price;
}