Skip to content

Instantly share code, notes, and snippets.

View lucasstark's full-sized avatar

Lucas Stark lucasstark

View GitHub Profile
@lucasstark
lucasstark / swatches-organizer.php
Last active August 25, 2021 17:00
Organize swatches into groups based on the attribute name after a dash.
class Swatches_Organizer {
private static $instances = null;
public static function register( $taxonomy_slug ) {
if ( self::$instances == null ) {
self::$instances = new Swatches_Organizer( $taxonomy_slug );
}
}
protected $taxonomy_slug;
@lucasstark
lucasstark / wc-wishlists-account-endpoint.php
Last active September 2, 2021 13:48
Modify WooCommece Wishlist's Endpoint Slug
class WC_Wishlists_Account_Endpoint {
private static $instance;
public static function register($endpoint_slug, $endpoint_name) {
if ( self::$instance == null ) {
self::$instance = new WC_Wishlists_Account_Endpoint($endpoint_slug, $endpoint_name);
}
}
protected $endpoint_slug;
add_filter( 'gform_delete_lead', function ( $lead_id ) {
if ( function_exists( 'gf_signature' ) ) {
$lead = RGFormsModel::get_lead( $lead_id );
$form = RGFormsModel::get_form_meta( $lead['form_id'] );
if ( !is_array( $form['fields'] ) ) {
return;
}
@lucasstark
lucasstark / swatches-on-archive.php
Created December 1, 2020 18:15
Add WooCommerce Variation Swatches and Photos to the Archive Page
function wc_swatches_shop_loop_item_href( $product, $attribute_name, $attribute_value ) {
$url = add_query_arg( array(
$attribute_name => $attribute_value
), $product->get_permalink() );
return $url;
}
class WC_Custom_Dynamic_Pricing_Context {
/**
* @var WC_Custom_Dynamic_Pricing_Context
*/
private static $instance;
/**
* Helper to bootstrap the class.
*/
public static function register() {
@lucasstark
lucasstark / dynamic-pricing-product-attribute-adjustments.php
Created June 21, 2019 15:55
Custom Product Attribute Advanced Rules for Dynamic Pricing
class WC_Dynamic_Pricing_Product_Attribute_Adjustments {
private static $instance;
public static function register( $product_attribute, $label ) {
if ( self::$instance == null ) {
self::$instance = [];
}
if ( ! isset( self::$instance[ $product_attribute ] ) ) {
@lucasstark
lucasstark / gravityforms-product-addons-enable-signature-field.php
Created April 29, 2019 16:33
Enable Gravity Forms Signature for WooCommerce Gravity Forms Product Addons
add_filter( 'gform_delete_lead', function ( $lead_id ) {
if ( function_exists( 'gf_signature' ) ) {
$lead = RGFormsModel::get_lead( $lead_id );
$form = RGFormsModel::get_form_meta( $lead['form_id'] );
if ( ! is_array( $form['fields'] ) ) {
return;
@lucasstark
lucasstark / ES_GravityForms_Grouped_Product_Add_To_Cart_Handler.php
Created April 24, 2019 15:13
Support Grouped Products for Gravity Forms Product Addons
class ES_GravityForms_Grouped_Product_Add_To_Cart_Handler {
private static $instance;
public static function register() {
if ( self::$instance == null ) {
self::$instance = new ES_GravityForms_Grouped_Product_Add_To_Cart_Handler();
}
}
@lucasstark
lucasstark / woocommerce-dynamic-pricing-output-json-variation-rules.php
Created March 28, 2019 11:30
Output Dynamic Pricing rules in JSON format for Variation Specific Rules.
add_action( 'wp_footer', function () {
if ( ! class_exists( 'WC_Dynamic_Pricing_Table' ) ) {
return;
}
$instance = WC_Dynamic_Pricing_Table::instance();
$array_rule_sets = $instance->get_pricing_array_rule_sets();
$json_prices = array();
@lucasstark
lucasstark / woocommerce-dynamic-pricing-exclude-specific-products.php
Created March 20, 2019 12:56
Exclude specific products from WooCommerce Dynamic Pricing.
add_filter( 'woocommerce_dynamic_pricing_process_product_discounts', 'is_product_eligible', 10, 4 );
function is_product_eligible( $eligible, $product, $discounter_name, $discounter_object ) {
//Be sure to change this to your product(s) you want to exclude.
$exclude_products = array(
320,
401,
100
);