Just a handy collection of small snippets for customising WooCommerce.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$post_type = 'my_post_type'; | |
// Register the columns. | |
add_filter( "manage_{$post_type}_posts_columns", function ( $defaults ) { | |
$defaults['custom-one'] = 'Custom One'; | |
$defaults['custom-two'] = 'Custom Two'; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Hook the filter before calling the query. Note that we are using an anonymous | |
// function here and saving a reference to the `$fn` variable for use further down. | |
add_filter( 'posts_where', $fn = function ( $where, WP_Query $wp_query ){ | |
global $wpdb; | |
// Add a clause that ensures we only get posts with an ID greater than 200. | |
$where .= " AND {$wpdb->posts}.ID > 200"; | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
add_filter( 'get_the_excerpt', function ( $excerpt, $post ) { | |
if ( ! empty( $excerpt ) ) { | |
return $excerpt; | |
} | |
// On a specific post type, use an ACF field value as the excerpt. | |
if ( $post->post_type === 'my_custom_post_type' ) { | |
$excerpt = get_field( 'product_description', $post->ID ); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Need to trim zeros from a price on the fly? | |
$price = 49.00; // Can be numeric or a string. | |
$price = wc_trim_zeros( $price ); // === '49' | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Disable deprecation notices so we can get a better idea of what's going on in our log. | |
// These hooks are all in wp-includes/functions.php. | |
// Note that these hooks don't stop WooCommerce from logging deprecation notices on AJAX | |
// or REST API calls as it makes its own calls to `error_log()` from within | |
// woocommerce/includes/wc-deprecated-functions.php. | |
add_filter( 'deprecated_constructor_trigger_error', '__return_false' ); | |
add_filter( 'deprecated_function_trigger_error', '__return_false' ); | |
add_filter( 'deprecated_file_trigger_error', '__return_false' ); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Use an ACF field value to pull the number from the database. | |
$number_of_items = (int) get_field('my_numerical_field', $post_id ); | |
$string = sprintf( | |
_n( | |
'%d item in stock', | |
'%d items in stock', | |
$number_of_items |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.DS_Store | |
.sass-cache | |
node_modules | |
/upgrade | |
/cache | |
/uploads | |
/advanced-cache.php | |
/debug.log | |
/languages | |
/db.php |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
add_action('wp_enqueue_scripts', function(){ | |
// Assuming our previous example code is in a script enqueued with the handle `my-script` e.g; | |
// wp_enqueue_script( 'my-script', … ); | |
// Localise an object containing our nonce: | |
wp_localize_script( 'my-script', 'myvars', [ | |
'nonce' => wp_create_nonce( 'wp_rest' ) |