Untitled

 avatar
unknown
plain_text
a day ago
2.2 kB
2
Indexable
function b2bking_add_tiered_pricing_type_fields() {
    global $post;
    
    $groups = get_posts(array(
        'post_type' => 'b2bking_group',
        'post_status' => 'publish',
        'numberposts' => -1
    ));
    
    echo '<div class="options_group">';
    echo '<h4 style="padding-left:10px;">B2BKing Tiered Pricing Type</h4>';
    echo '<p class="description">Configure which B2B groups will use "Each Additional" pricing (checked) vs. "Price Per Unit" pricing (unchecked).</p>';
    
    foreach ($groups as $group) {
        woocommerce_wp_checkbox(array(
            'id' => '_b2bking_tiered_pricing_each_additional_group_' . $group->ID,
            'label' => esc_html($group->post_title),
            'description' => 'Enable "Each Additional" pricing for this group',
            'desc_tip' => true
        ));
    }
    
    echo '</div>';
}
add_action('woocommerce_product_options_pricing', 'b2bking_add_tiered_pricing_type_fields');

function b2bking_save_tiered_pricing_type_fields($product_id) {
    $groups = get_posts(array(
        'post_type' => 'b2bking_group',
        'post_status' => 'publish',
        'numberposts' => -1
    ));
    
    foreach ($groups as $group) {
        $field_id = '_b2bking_tiered_pricing_each_additional_group_' . $group->ID;
        $setting = isset($_POST[$field_id]) ? 'yes' : 'no';
        update_post_meta($product_id, $field_id, $setting);
    }
}
add_action('woocommerce_process_product_meta', 'b2bking_save_tiered_pricing_type_fields');

function b2bking_filter_tiered_pricing_type($use_each_additional, $product) {
    if (!$product || !is_object($product)) {
        return $use_each_additional;
    }
    
    $product_id = $product->get_id();
    
    $group_id = b2bking()->get_user_group();
    
    if (!$group_id) {
        return $use_each_additional;
    }
    
    $group_setting = get_post_meta($product_id, '_b2bking_tiered_pricing_each_additional_group_' . $group_id, true);
    
    if ($group_setting === 'yes') {
        return true;
    }
    
    return false;
}
add_filter('b2bking_tiered_pricing_use_each_additional', 'b2bking_filter_tiered_pricing_type', 10, 2);
Editor is loading...
Leave a Comment