Skip to content

Instantly share code, notes, and snippets.

@claudiosanches
Created May 11, 2016 20:27
Show Gist options
  • Save claudiosanches/14541af6182dd9ade7c7f53d64982452 to your computer and use it in GitHub Desktop.
Save claudiosanches/14541af6182dd9ade7c7f53d64982452 to your computer and use it in GitHub Desktop.

Revisions

  1. claudiosanches created this gist May 11, 2016.
    51 changes: 51 additions & 0 deletions functions.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,51 @@
    <?php
    /**
    * Custom variable price HTML.
    * Shows "Starting at" prefix with when min price is different from max price.
    *
    * @param stirng $price Product price HTML
    * @param WC_Product_Variable $product Product data.
    * @return string
    */
    function cs_my_wc_custom_variable_price_html( $price, $product ) {
    $prices = $product->get_variation_prices( true );

    $min_price = current( $prices['price'] );
    $max_price = end( $prices['price'] );

    // Return price if min is equal to max.
    if ( $min_price === $max_price || $product->is_on_sale() ) {
    return $price;
    }

    return sprintf( __( 'Starting at %s', 'your-text-domain' ), wc_price( $min_price ) . $product->get_price_suffix() );
    }

    add_filter( 'woocommerce_variable_price_html', 'cs_my_wc_custom_variable_price_html', 10, 2 );

    /**
    * Custom variable sale price HTML.
    * Shows "Starting at" prefix with when min price is different from max price.
    *
    * @param stirng $price Product price HTML
    * @param WC_Product_Variable $product Product data.
    * @return string
    */
    function cs_my_wc_custom_variable_sale_price_html( $price, $product ) {
    $prices = $product->get_variation_prices( true );

    $min_price = current( $prices['price'] );
    $min_regular_price = current( $prices['regular_price'] );
    $max_regular_price = end( $prices['regular_price'] );

    // Return price if min is equal to max.
    if ( $min_regular_price === $max_regular_price ) {
    return $price;
    }

    $price = $product->get_price_html_from_to( $min_regular_price, $min_price );

    return sprintf( __( 'Starting at %s', 'your-text-domain' ), $price . $product->get_price_suffix() );
    }

    add_filter( 'woocommerce_variable_sale_price_html', 'cs_my_wc_custom_variable_sale_price_html', 10, 2 );