Skip to content

Instantly share code, notes, and snippets.

View braddalton's full-sized avatar

Brad Dalton braddalton

View GitHub Profile
@braddalton
braddalton / filter_upsells_product_display.php
Created October 4, 2023 15:01
Upsells Order and Orderby
function filter_upsells_product_display( $args ) {
$args['orderby'] = 'title';
$args['order'] = 'ASC';
return $args;
}
add_filter( 'woocommerce_upsell_display_args', 'filter_upsells_product_display', 20 );
@braddalton
braddalton / remove_woocommerce_shop_loop_item_title.php
Last active October 4, 2023 12:05
Remove Product Title on Shop Loop Archive Pages in WooCommerce
add_action( 'woocommerce_before_shop_loop', 'remove_woocommerce_shop_loop_item_title' );
function remove_woocommerce_shop_loop_item_title() {
remove_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10 );
}
$shipping_class_id = 464;
$in_cart = false;
foreach ( WC()->cart->get_cart_contents() as $key => $values ) {
if ( $values[ 'data' ]->get_shipping_class_id() == $shipping_class_id ) {
$in_cart = true;
@braddalton
braddalton / wc-change-placeholder-image.php
Created October 2, 2023 08:26 — forked from woogists/wc-change-placeholder-image.php
[Theming Snippets] Change the placeholder image
/**
* Change the placeholder image
*/
add_filter('woocommerce_placeholder_img_src', 'custom_woocommerce_placeholder_img_src');
function custom_woocommerce_placeholder_img_src( $src ) {
$upload_dir = wp_upload_dir();
$uploads = untrailingslashit( $upload_dir['baseurl'] );
// replace with path to your image
$src = $uploads . '/2012/07/thumb1.jpg';
add_action( 'wp_enqueue_scripts', 'woocomerce_infinite_scroll_shop_page' );
function woocomerce_infinite_scroll_shop_page() {
if ( is_shop() ) {
wp_enqueue_script( 'infinite-scroll', get_stylesheet_directory_uri() . '/js/infinite-scroll.pkgd.min.js', array( 'jquery' ), '1.0.0', true );
wp_enqueue_script( 'infinite-scroll-set', get_stylesheet_directory_uri() . '/js/infinite-scroll-set.js' , array( 'jquery', 'infinite-scroll' ), '1.0.0', true );
}
@braddalton
braddalton / wc_in_stock_related_products.php
Last active September 30, 2023 14:40
2 Ways To Show Only In Stock Related Products Only WooCommerce https://wpsites.net/?p=113487
@braddalton
braddalton / filter_add_to_cart_button_url.php
Last active September 29, 2023 19:19
Change Add To Cart Button Link To Single Product Page on Shop Page https://wpsites.net/?p=113464
add_filter( 'woocommerce_loop_add_to_cart_link', 'filter_add_to_cart_button_url', 10, 2 );
function filter_add_to_cart_button_url( $button, $product ) {
if ( is_shop() ) {
$text = __('View product', 'woocommerce');
$button = sprintf( '<a class="button" href="%s">%s</a>', $product->get_permalink(), $text );
}
@braddalton
braddalton / disable_coupon_field_on_cart_checkout.php
Last active September 26, 2023 09:21
1. Remove Coupon Field from Cart and Checkout WooCommerce 2. Remove coupon field conditionally https://wpsites.net/product/remove-coupon-field-if-total-is-zero/
add_filter( 'woocommerce_coupons_enabled', 'disable_coupon_field_on_cart_checkout' );
function disable_coupon_field_on_cart_checkout( $enabled ) {
if ( is_cart() || is_checkout() ) {
$enabled = false;
}
return $enabled;
@braddalton
braddalton / Redirect to Order Received Page After Sumup Payment.php
Created September 22, 2023 09:23
Redirect to Order Received Page After Sumup Payment
add_action( 'template_redirect', 'sumup_redirect_order_received');
function sumup_redirect_order_received(){
if ( is_wc_endpoint_url( 'order-received' ) ) {
global $wp;
$order_id = intval( str_replace( 'checkout/order-received/', '', $wp->request ) );
$order = wc_get_order( $order_id );
@braddalton
braddalton / woocommerce_different_tax_rate_user_role.php
Last active September 21, 2023 12:02
Different Tax Rate Based on User Role WooCommerce https://wpsites.net/?p=113294
add_filter( 'woocommerce_product_get_tax_class', 'woocommerce_different_tax_rate_user_role', 1, 2 );
add_filter( 'woocommerce_product_variation_get_tax_class', 'woocommerce_different_tax_rate_user_role', 1, 2 );
function woocommerce_different_tax_rate_user_role( $tax_class, $product ) {
$user_id = get_current_user_id();
$user = get_user_by( 'id', $user_id );
if ( is_user_logged_in() && ! empty( $user ) && in_array( 'customer-tax-exempt', $user->roles ) ) {
$tax_class = 'zero-rate';