first commit
This commit is contained in:
109
wp-content/themes/elishop/functions.php
Normal file
109
wp-content/themes/elishop/functions.php
Normal file
@@ -0,0 +1,109 @@
|
||||
<?php
|
||||
|
||||
if (!function_exists('my_commonPriceHtml')) {
|
||||
|
||||
function my_commonPriceHtml($price_amt, $regular_price, $sale_price) {
|
||||
$html_price = '<p class="price">';
|
||||
//if product is in sale but sale price is not set
|
||||
if ( ($price_amt != $regular_price) && $sale_price === '' ) {
|
||||
$html_price .= '<ins>' . wc_price($price_amt) . '</ins>';
|
||||
$html_price .= '<del>' . wc_price($regular_price) . '</del>';
|
||||
}
|
||||
//if product is in sale
|
||||
if (($price_amt == $sale_price) && ($sale_price != 0)) {
|
||||
$html_price .= '<ins>' . wc_price($sale_price) . '</ins>';
|
||||
$html_price .= '<del>' . wc_price($regular_price) . '</del>';
|
||||
}
|
||||
//in sale but free
|
||||
else if (($price_amt == $sale_price) && ($sale_price == 0)) {
|
||||
$html_price .= '<ins>Free!</ins>';
|
||||
$html_price .= '<del>' . wc_price($regular_price) . '</del>';
|
||||
}
|
||||
//not is sale
|
||||
else if (($price_amt == $regular_price) && ($regular_price != 0)) {
|
||||
$html_price .= '<ins>' . wc_price($regular_price) . '</ins>';
|
||||
}
|
||||
//for free product
|
||||
else if (($price_amt == $regular_price) && ($regular_price == 0)) {
|
||||
$html_price .= '<ins>Free!</ins>';
|
||||
}
|
||||
$html_price .= '</p>';
|
||||
return $html_price;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
add_filter('woocommerce_get_price_html', 'my_simple_product_price_html', 100, 2);
|
||||
|
||||
function my_simple_product_price_html($price, $product) {
|
||||
if ($product->is_type('simple')) {
|
||||
$regular_price = $product->get_regular_price();
|
||||
$sale_price = $product->get_sale_price();
|
||||
$price_amt = $product->get_price();
|
||||
return my_commonPriceHtml($price_amt, $regular_price, $sale_price);
|
||||
} else {
|
||||
return $price;
|
||||
}
|
||||
}
|
||||
|
||||
add_filter('woocommerce_variation_sale_price_html', 'my_variable_product_price_html', 10, 2);
|
||||
add_filter('woocommerce_variation_price_html', 'my_variable_product_price_html', 10, 2);
|
||||
|
||||
function my_variable_product_price_html($price, $variation) {
|
||||
$variation_id = $variation->variation_id;
|
||||
//creating the product object
|
||||
$variable_product = new WC_Product($variation_id);
|
||||
|
||||
$regular_price = $variable_product->get_regular_price();
|
||||
$sale_price = $variable_product->get_sale_price();
|
||||
$price_amt = $variable_product->get_price();
|
||||
|
||||
return my_commonPriceHtml($price_amt, $regular_price, $sale_price);
|
||||
}
|
||||
|
||||
add_filter('woocommerce_variable_sale_price_html', 'my_variable_product_minmax_price_html', 10, 2);
|
||||
add_filter('woocommerce_variable_price_html', 'my_variable_product_minmax_price_html', 10, 2);
|
||||
|
||||
function my_variable_product_minmax_price_html($price, $product) {
|
||||
$variation_min_price = $product->get_variation_price('min', true);
|
||||
$variation_max_price = $product->get_variation_price('max', true);
|
||||
$variation_min_regular_price = $product->get_variation_regular_price('min', true);
|
||||
$variation_max_regular_price = $product->get_variation_regular_price('max', true);
|
||||
|
||||
if (($variation_min_price == $variation_min_regular_price) && ($variation_max_price == $variation_max_regular_price)) {
|
||||
$html_min_max_price = $price;
|
||||
} else {
|
||||
$html_price = '<p class="price">';
|
||||
$html_price .= '<ins>' . wc_price($variation_min_price) . '-' . wc_price($variation_max_price) . '</ins>';
|
||||
$html_price .= '<del>' . wc_price($variation_min_regular_price) . '-' . wc_price($variation_max_regular_price) . '</del>';
|
||||
$html_min_max_price = $html_price;
|
||||
}
|
||||
|
||||
return $html_min_max_price;
|
||||
}
|
||||
|
||||
//najnizsza cena w wariancie
|
||||
add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
|
||||
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );
|
||||
function wc_wc20_variation_price_format( $price, $product ) {
|
||||
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
|
||||
$price = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
|
||||
// Sale Price
|
||||
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
|
||||
sort( $prices );
|
||||
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
|
||||
|
||||
if ( $price !== $saleprice ) {
|
||||
$price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';
|
||||
}
|
||||
return $price;
|
||||
}
|
||||
|
||||
//NUMBER OF PRODUCTS TO DISPLAY ON SHOP PAGE
|
||||
add_action('pre_get_posts', 'wg_view_all_products', 999);
|
||||
|
||||
function wg_view_all_products($query){
|
||||
if( isset($_GET['view']) && $_GET['view'] === 'all' ){
|
||||
$query->set( 'posts_per_page', -1 );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user