Skip to content

Instantly share code, notes, and snippets.

View lucasstark's full-sized avatar

Lucas Stark lucasstark

View GitHub Profile
@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
);
@lucasstark
lucasstark / catalog-visibility-options-custom-filters.php
Last active February 26, 2019 14:37
Disable Purchases and Prices for Retail roles.
function custom_catalog_visibility_user_can_view_price( $can_view_price, $product ) {
//Set to true so everyone can purchase.
if ($can_view_price) {
return $can_view_price;
}
if ( current_user_can( 'retail' ) ) {
//User is retail user, set prices to false.
$can_view_price = true;
}