Skip to content

Instantly share code, notes, and snippets.

View webdados's full-sized avatar

Marco Almeida webdados

View GitHub Profile
@webdados
webdados / woocommerce_sale_flash.php
Created August 28, 2024 09:34
Show percentage sales badge for products that are on sale but not with a "Taxonomy/Term and Role based Discounts for WooCommerce" rule applied
<?php
/**
* Taxonomy/Term and Role based Discounts for WooCommerce lets you configure discounts/pricing rules for products based on any WooCommerce product taxonomy terms (built-in or custom), in a very simple way.
* Free version: https://wordpress.org/plugins/taxonomy-discounts-woocommerce/
* PRO Add-on: https://ptwooplugins.com/product/taxonomy-term-and-role-based-discounts-for-woocommerce-pro-add-on/
**/
add_filter( 'woocommerce_sale_flash', function( $html, $post, $product ) {
// Taxonomy/Term and Role based Discounts for WooCommerce (Free) is active?
if ( function_exists( 'WC_Taxonomy_Discounts_Webdados' ) ) {
@webdados
webdados / invoicexpress_woocommerce_vat_position_my_account.php
Created August 21, 2024 08:47
Change the VAT number position on the My Account and Thank You order details on the Invoicing with InvoiceXpress for WooCommerce plugin
<?php
/**
* https://ptwooplugins.com/product/invoicing-with-invoicexpress-for-woocommerce-pro/
* https://invoicewoo.com/
*/
// Change hook
add_filter( 'invoicexpress_woocommerce_vat_position_my_account', function( $hook ) {
return 'woocommerce_order_details_after_order_table';
} );
@webdados
webdados / kuantokusta_product_node_default_shipping.php
Created August 1, 2024 14:42
Kuanto Kusta for WooCommerce - Set free shipping for products above a certain price
<?php
add_filter( 'kuantokusta_product_node_default_shipping', 'kuantokusta_default_free_shipping', 10, 3 );
add_filter( 'kuantokusta_product_node_variation_shipping', 'kuantokusta_variation_free_shipping', 10, 3 );
function kuantokusta_default_free_shipping( $shipping_cost, $product, $product_type ) {
return kuantokusta_free_shipping( $shipping_cost, $product );
}
function kuantokusta_variation_free_shipping( $shipping_cost, $product, $variation ) {
return kuantokusta_free_shipping( $shipping_cost, $variation );
}
function kuantokusta_free_shipping( $shipping_cost, $product_or_variation ) {
@webdados
webdados / woo_dpd_portugal_webservice_timeout.php
Created July 26, 2024 10:59
Increase DPD Portugal API timeout
<?php
/* Increase DPD Portugal API timeout */
add_filter( 'woo_dpd_portugal_webservice_timeout', function( $seconds ) {
return 60;
} );
@webdados
webdados / wc_ifthenpay_mbway_convertmb_expired_orders_email_subject.php
Created July 15, 2024 10:08
Change the MB WAY to Multibanco recover order email subject on Multibanco, MB WAY, Credit card, Payshop and Cofidis Pay (IfthenPay) for WooCommerce - PRO add-on
<?php
add_filter( 'wc_ifthenpay_mbway_convertmb_expired_orders_email_subject', function( $subject, $order ) {
return 'Enc. #' . $order->get_id() . ' - Última oportunidade para efetuares o pagamento!';
}, 10, 2 );
@webdados
webdados / swcbcf_validate_callback_{location}_{field-slug}.php
Created June 19, 2024 16:08
Using the swcbcf_validate_callback_{location}_{field-slug} filter to validate fields on the "Simple Custom Fields for WooCommerce Blocks Checkout" plugin
<?php
// Filter name: swcbcf_validate_callback_{location}_{field-slug}
// {location} can be contact, address or order
// {field-slug} is the field slug
// In this example we're validating a field that needs to be at least 5 chars long
add_filter( 'swcbcf_validate_callback_' . 'order' . '_' . 'how-did-you-get-to-know', function( $return, $value, $field ) {
if ( strlen( trim( $value ) ) < 5 ) {
return 'This field needs to be at least 5 characters long';
}
@webdados
webdados / swcbcf_get_custom_field.php
Created April 30, 2024 15:51
Helper functions for the Simple Custom Fields for WooCommerce Blocks Checkout plugin
<?php
/**
* Usage example for the "Simple Custom Fields for WooCommerce Blocks Checkout" plugin helper functions
* Get it at https://ptwooplugins.com/product/simple-custom-fields-for-woocommerce-blocks-checkout/
*/
// Get "fiscal-number" field from the "Contact information" section, on orders and users
$value = swcbcf_get_order_field( $order_id, 'other', 'fiscal-number' );
$value = swcbcf_get_user_field( $user_id, 'other', 'fiscal-number' );
@webdados
webdados / woo_dpd_portugal_update_order_tracking_information.php
Last active April 25, 2024 09:59
Update order objects tracking information on DPD Portugal for WooCommerce
<?php
/**
* Run action each time a object tracking information is updated (not recommended unless you need to diferentiate each object)
*
* @param int $order_id The order ID
* @param string $tracking_number The object tracking number
* @param array $tracking_information An array will all objects traking information (the key is the tracking number)
* @param bool $programmatically If the udpate was triggered programmatically
**/
@webdados
webdados / woo_dpd_portugal_get_token.php
Created April 5, 2024 15:30
Get a token for the DPD Portugal REST AI from the "DPD Portugal for WooCommerce" plugin
<?php
$token = apply_filters( 'woo_dpd_portugal_get_token', null );
if ( $token['success'] ) {
// Do your thing with $token['token']
var_dump( $token['token'] );
}
@webdados
webdados / register_nav_menus.php
Created March 19, 2024 17:37
How to create classic menu locations on WordPress
<?php
/**
* Register menu locations - Put this on your (child-)theme functions.php file or use a code snippets plugin
*/
add_action( 'after_setup_theme', function() {
register_nav_menus(
array(
// One line per location
'top_menu' => 'Top menu',
'footer_menu' => 'Footer menu',