143 lines
5.3 KiB
PHP
143 lines
5.3 KiB
PHP
<?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 );
|
|
}
|
|
}
|
|
|
|
add_action('init', 'elishop_restore_administrator_user_caps');
|
|
|
|
function elishop_restore_administrator_user_caps() {
|
|
if (get_option('elishop_admin_user_caps_restored')) {
|
|
return;
|
|
}
|
|
|
|
$role = get_role('administrator');
|
|
if (!$role) {
|
|
return;
|
|
}
|
|
|
|
$caps = array(
|
|
'list_users',
|
|
'create_users',
|
|
'edit_users',
|
|
'delete_users',
|
|
'promote_users',
|
|
'remove_users',
|
|
);
|
|
|
|
$changed = false;
|
|
foreach ($caps as $cap) {
|
|
if (!$role->has_cap($cap)) {
|
|
$role->add_cap($cap);
|
|
$changed = true;
|
|
}
|
|
}
|
|
|
|
if ($changed) {
|
|
update_option('elishop_admin_user_caps_restored', time());
|
|
}
|
|
} |