Untitled
unknown
plain_text
a year ago
4.7 kB
15
Indexable
function b2bking_display_tier_table_in_category() {
global $product;
if ($product){
?>
<div class="tiered_table_archive"> <?php
$product_id = $product->get_id();
$user_id = get_current_user_id();
$user_id = b2bking()->get_top_parent_account($user_id);
$currentusergroupidnr = apply_filters('b2bking_b2b_group_for_pricing', b2bking()->get_user_group($user_id), $user_id);
$price_tiers = get_post_meta($product_id, 'b2bking_product_pricetiers_group_'.$currentusergroupidnr, true);
$price_tiers = b2bking()->convert_price_tiers($price_tiers, $product);
if (!(!empty($price_tiers) && strlen($price_tiers) > 1 )){
$price_tiers = get_post_meta($product_id, 'b2bking_product_pricetiers_group_b2c', true);
$price_tiers = b2bking()->convert_price_tiers($price_tiers, $product);
}
$price_tiers_array = explode(';', $price_tiers);
$price_tiers_array = array_filter($price_tiers_array);
// need to order this array by the first number (elemnts of form 1:5, 2:5, 6:5)
$helper_array = array();
foreach ($price_tiers_array as $index=> $pair){
if (empty($pair)) {continue;}
$pair_array = explode(':', $pair);
$helper_array[$pair_array[0]] = b2bking()->tofloat($pair_array[1], 4);
}
ksort($helper_array);
$price_tiers_array = array();
foreach ($helper_array as $index=>$value){
array_push($price_tiers_array,$index.':'.$value);
}
// finished sort
$number_of_tiers = count($price_tiers_array);
// only 1 tier
if ($number_of_tiers === 1){
$tier_values = explode(':', $price_tiers_array[0]);
?>
<tr>
<td><?php
echo esc_html($tier_values[0]).apply_filters('b2bking_tiered_pricing_table_show_direct_qty', '+');
$tier_values[1] = b2bking()->b2bking_wc_get_price_to_display( $product, array( 'price' => $tier_values[1] ) ); // get sale price
?></td>
<td><?php
echo apply_filters('b2bking_tiered_pricing_table_price', wc_price(b2bking()->get_woocs_price($tier_values[1])), $tier_values[1], $tier_values[0], $product_id).'<br>';
?>
</td>
</tr>
<?php
} else {
$previous_tier = 'no';
$previous_value = 'no';
foreach ($price_tiers_array as $index => $tier){
if (empty($tier)) {continue;}
$tier_values = explode(':', $tier);
if ($previous_tier !== 'no'){
// adjust price for tax
$previous_value = b2bking()->b2bking_wc_get_price_to_display( $product, array( 'price' => $previous_value ) ); // get sale price
// check that tier price is better than group price, else don't show tier
$show_row = 'yes';
if (!empty($user_price)){
if ($previous_value > $user_price){
$show_row = 'no';
}
}
if ($show_row === 'yes'){
?>
<tr>
<td><?php
if (b2bking()->tofloat($previous_tier) !== b2bking()->tofloat($tier_values[0]-1)){
// do not show 1-1
if ($previous_tier == $tier_values[0]-1 && $previous_tier == 1){
echo 1;
} else {
// do not show 2-2 3-3 etc
if ($previous_tier == $tier_values[0]-1){
echo esc_html($previous_tier);
} else {
echo esc_html($previous_tier).apply_filters('b2bking_tiered_pricing_table_show_direct_qty', ' - '.esc_html($tier_values[0]-1));
}
}
} else {
echo esc_html(apply_filters('b2bking_tiered_pricing_table_show_direct_qty', $previous_tier));
}
?></td>
<td><?php
echo apply_filters('b2bking_tiered_pricing_table_price', wc_price(b2bking()->get_woocs_price($previous_value)), $previous_value, $previous_tier, $product_id).'<br>';
?>
</td>
</tr>
<?php
}
}
$previous_tier = $tier_values[0];
$previous_value = $tier_values[1];
// if this tier is the last tier
if (intval($index+1) === intval($number_of_tiers)){
?>
<tr>
<td><?php echo esc_html($previous_tier).apply_filters('b2bking_tiered_pricing_table_show_direct_qty','+'); ?></td>
<?php
// adjust price for tax
$previous_value = b2bking()->b2bking_wc_get_price_to_display( $product, array( 'price' => $previous_value ) ); // get sale price
?>
<td><?php
echo apply_filters('b2bking_tiered_pricing_table_price', wc_price(b2bking()->get_woocs_price($previous_value)), $previous_value, $previous_tier, $product_id).'<br>';
?>
</td>
</tr>
<?php
}
}
}
?>
</div>
<?php
}
}
add_action('woocommerce_single_product_summary', 'b2bking_display_tier_table_in_category', 20);
add_action('woocommerce_after_shop_loop_item_title', 'b2bking_display_tier_table_in_category', 20);Editor is loading...
Leave a Comment