There are three different WooCommerce hooks after payment completed I would like to talk about.
All of those hooks are fired when an order is either paid or doesn’t require a payment (Cash on Delivery for example). They also apply for custom payment gateways.
As you probably know, shipping classes apply to every product individually.
What does it mean for us? It means that we have to loop through all the products in the cart in our code and check their shipping classes using either
Also we have two options here – if any product in the cart has a specific shipping class or if all the products in the cart have the specific shipping class.
When I create conditions with shipping classes in my code I usually use
get_shipping_class() method, so I can check against shipping classes slugs, example. Slugs can easily be found in WooCommerce > Settings > Shipping > Shipping Classes.
But what you have to use
get_shipping_class_id() method? Where and how to get a specific shipping class ID then?
First of all – you can inspect the code in your browser and find it there. In order to do that – please open product edit page and find “Product data” metabox. Go to “Shipping” tab and inspect “Shipping class” dropdown element.
In this tutorial I will show how to perform a redirect to a custom order received paged depending on a payment gateway used by customer.
In this tutorial I will show you how to enable or disable WooCommerce payment gateways for a specific user role. And also how to condition them for registered users.
In this simple tutorial I will show you how to do this: