Skip to content

Instantly share code, notes, and snippets.

@jorpdesigns
jorpdesigns / set-cart-items-price.php
Last active July 12, 2021 16:22
Snippet to set price of items in WooCommerce cart
<?php
add_action( 'woocommerce_before_calculate_totals', 'custom_cart_price' );
function custom_cart_price( $cart_object ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
foreach ( $cart_object->get_cart() as $key => $value ) {
// CHANGE PRICE FOR ALL CART ITEMS TO 10
@jorpdesigns
jorpdesigns / modify-cart-items-display.php
Created July 12, 2021 15:56
Snippet to modify WooCommerce cart items price, quantity and subtotal display
<?php
// MODIFY PRICE
add_filter( 'woocommerce_cart_item_price', 'custom_price_display', 10, 3 );
function custom_price_display( $price, $cart_item, $cart_item_key ) {
// ADD ' FOR EACH ITEM' SUFFIX TO ALL PRODUCTS
$price .= ' for each item';
// ADD ' FOR THIS ITEM' SUFFIX TO SPECIFIC PRODUCT
@jorpdesigns
jorpdesigns / cart-items-loop.php
Created July 12, 2021 15:53
Snippet to loop through WooCommerce cart items and conduct checks or perform actions
<?php
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$product = $cart_item['data'];
// GET ITEM LINK
$link = $product->get_permalink( $cart_item );
// GET ITEM CART PRICE
$price = WC()->cart->get_product_price( $product );
@jorpdesigns
jorpdesigns / check-if-in-cart
Last active July 12, 2021 15:51
Snippet to check if WooCommerce product is in cart
<?php
$product_id = 15; // Replace with your product id
$product_cart_id = WC()->cart->generate_cart_id( $product_id );
if( ! WC()->cart->find_product_in_cart( $product_cart_id ) ){
// Do something
}
?>
@jorpdesigns
jorpdesigns / change-cart-url.php
Created July 12, 2021 15:31
Snippet to change WooCommerce cart URL
<?php
add_filter( 'woocommerce_get_cart_url', 'custom_cart_url' );
function custom_cart_url( $url ) {
$url = '/new-cart-link/';
return $url;
}
?>
@jorpdesigns
jorpdesigns / woocommmerce-cart-functions.php
Last active July 12, 2021 17:04
WooCommerce Cart functions and conditions
<?php
// Full list: https://www.businessbloomer.com/woocommerce-get-cart-info-total-items-etc-from-cart-object/
wc_get_cart_url(); // GET CART URL
WC()->cart->is_empty(); // CHECK IF CART IS EMPTY
WC()->cart->needs_shipping(); // CHECK IF CART NEEDS SHIPPING
WC()->cart->needs_shipping_address(); // CHECK IF CART NEEDS SHIPPING ADDRESS
WC()->cart->has_discount( $coupon_code ); // CHECK IF CART HAS SPECIFIC COUPON CODE APPLIED
WC()->cart->get_cart_contents_count(); // GET CART COUNT
@jorpdesigns
jorpdesigns / modify-remove-account-tabs.php
Created July 12, 2021 15:27
Snippet to remove or modify WooCommerce "My Account" page tabs
<?php
add_filter ( 'woocommerce_account_menu_items', 'remove_my_account_links' );
function remove_my_account_links( $menu_links ){
unset( $menu_links['tab-slug-to-be-removed'] );
$menu_links['tab-slug-to-be-renamed'] = 'New Name';
return $menu_links;
}
@jorpdesigns
jorpdesigns / product-row-page-amount.php
Created July 12, 2021 15:24
Snippet to set number of products per page and per row on WooCommerce archives
<?php
// SETS NUMBER OF PRODUCTS DISPLAYED PER PAGE
add_filter( 'loop_shop_per_page', 'new_loop_shop_per_page', 9999 );
function new_loop_shop_per_page( $cols ) {
$cols = 30;
return $cols;
}
@jorpdesigns
jorpdesigns / remove-sorting-option.php
Created July 12, 2021 14:05
Snippet to remove WooCommerce catalogue sorting option
<?php
// orderby values are date, menu_order, popularity, rating, date, price, price-desc
add_filter( 'woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby', 20 );
function custom_woocommerce_catalog_orderby( $orderby ) {
unset($orderby["price"]); // Remove price option
return $orderby;
}
@jorpdesigns
jorpdesigns / category-default-ordering.php
Created July 12, 2021 14:01
Snippet to set default ordering for specific WooCommerce product category
<?php
// orderby values are date, menu_order, popularity, rating, date, price, price-desc
add_filter( 'woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby' );
function custom_default_catalog_orderby() {
if ( is_product_category( array( 'category-1-slug', 'category-2-slug' ) ) ) { // Replace with your category slugs
return 'menu_order';
} else {
return 'date';