Skip to content

Instantly share code, notes, and snippets.

View stuartduff's full-sized avatar

Stuart Duff stuartduff

View GitHub Profile
@stuartduff
stuartduff / wcs-remove-resubscribe.php
Created February 24, 2021 11:48
Remove resubscribe button for WC Subscriptions
/**
* Remove the "Change Payment Method" button from the My Subscriptions table.
*
* This isn't actually necessary because @see eg_subscription_payment_method_cannot_be_changed()
* will prevent the button being displayed, however, it is included here as an example of how to
* remove just the button but allow the change payment method process.
*/
function eg_remove_my_subscriptions_button( $actions, $subscription ) {
foreach ( $actions as $action_key => $action ) {
@stuartduff
stuartduff / wc-billing-fields-uk-brexit-regions.php
Last active February 18, 2021 18:02
Changes the county field to state/region to separate regions in the UK for brexit.
/**
* Changes the county field to state/region to separate regions in the UK for brexit.
* This can be used to specify specific shipping zones for UK regions, like exluding Northern Ireland from UK shipping.
*/
function custom_woocommerce_uk_states_brexit( $states ) {
$states['GB'] = array(
'ENG' => 'England',
'SCO' => 'Scotland',
@stuartduff
stuartduff / wc-billing-fields-required.php
Created December 15, 2020 09:23
Sets all Billing fields on WooCommerce checkout to required
/**
* Sets all WooCommerce billing fields to be required.
*/
function wc_require_billing_fields( $fields ) {
$fields['billing_first_name']['required'] = true;
$fields['billing_last_name']['required'] = true;
$fields['billing_company']['required'] = true;
$fields['billing_country']['required'] = true;
$fields['billing_address_1']['required'] = true;
$fields['billing_city']['required'] = true;
@stuartduff
stuartduff / wc-failed-to-pending-orders.php
Created December 10, 2020 14:20
Change Failed orders in WooCommerce to the order status of Pending
/**
* Set failed orders to pending payment.
*/
function wc_failed_to_pending( $order_id ){
$order = new WC_Order( $order_id );
$order->update_status( 'pending' );
}
add_action( 'woocommerce_order_status_failed', 'wc_failed_to_pending');
@stuartduff
stuartduff / move-stripe-payment-request-buttons.php
Created October 27, 2020 10:50
Move the WooCommerce Stripe payment request butttons.
remove_action( ‘woocommerce_after_add_to_cart_quantity’, array( WC_Stripe_Payment_Request::instance(), ‘display_payment_request_button_html’ ), 1 );
add_action( ‘woocommerce_simple_add_to_cart’, array( WC_Stripe_Payment_Request::instance(), ‘display_payment_request_button_html’ ), 1 );
function add_another_email_action( $array ) {
$array[]='woocommerce_order_status_processing_to_on-hold';
return $array;
}
add_filter( 'woocommerce_email_actions', 'add_another_email_action' );
function hook_another_email_on_hold( $email_class ) {
@stuartduff
stuartduff / fa-box-shorcode.exmple
Created February 26, 2020 21:38
An example of the FA Box Shortcode WordPress Plugin
[box icon="fa-wordpress" color="blue" url="https://wordpress.org"]Visit WordPress.org[/box]
@stuartduff
stuartduff / sf-fw-wooslider
Last active December 17, 2018 09:53
Storefront Homepage Full Width WooSlider
/**
* Adds wooslider into the storefront_before_content action in the parent themes header.php file.
*/
function sd_storefront_homepage_slider() {
// if not the StoreFront Homepage Page Template return false
if ( ! is_page_template( 'template-homepage.php' ) ) {
return false;
@stuartduff
stuartduff / storefront-custom-homepage-text-section.php
Last active December 12, 2018 11:29
Add a custom text section to the storefront themes homepage template.
function sf_output_custom_text_section() {
echo '<section class="storefront-product-section storefront-product-category">';
echo '<h2 class="section-title">' . __( 'Text Title', 'storefront' ) . '</h2>';
echo '<p>This is some text blurb</p>';
echo '</section>';
@stuartduff
stuartduff / wc-remove-billing-fields-required.php
Last active January 23, 2019 14:41
Removes the required status for all WooCommerce Checkout Billing Fields
/**
* Sets all WooCommerce billing fields to be unrequired.
*/
function wc_unrequire_billing_fields( $fields ) {
$fields['billing_first_name']['required'] = false;
$fields['billing_last_name']['required'] = false;
$fields['billing_company']['required'] = false;
$fields['billing_country']['required'] = false;
$fields['billing_address_1']['required'] = false;
$fields['billing_city']['required'] = false;