Merhaba

Ürün ekleme sayfası için
// WooCommerce Ürün Düzenleme Sayfasına İşçilik Maliyeti Alanı Eklemek
add_action('woocommerce_product_options_general_product_data', 'custom_product_field');
function custom_product_field() {
    woocommerce_wp_text_input(
        array(
            'id' => 'labour_cost',
            'label' => __('Labour Cost', 'woocommerce'),
            'desc_tip' => 'true',
            'description' => __('Enter the labour cost for this product.', 'woocommerce'),
            'type' => 'number',
            'custom_attributes' => array(
                'step' => 'any',
                'min' => '0'
            )
        )
    );
}

// İşçilik Maliyetini Kaydetmek
add_action('woocommerce_process_product_meta', 'save_custom_product_field');
function save_custom_product_field($post_id) {
    $product = wc_get_product($post_id);
    $labour_cost = isset($_POST['labour_cost']) ? $_POST['labour_cost'] : '';
    $product->update_meta_data('labour_cost', sanitize_text_field($labour_cost));
    $product->save();
}
Fiyat ayrıştırma

// Fiyatları Ayrıştırmak
function split_product_price($price, $labour_cost, $vat_rate_product, $vat_rate_labour) {
    $product_price = ($price - $labour_cost) / (1 + $vat_rate_product);
    $labour_price = $labour_cost / (1 + $vat_rate_labour);
    
    return array(
        'product_price' => $product_price,
        'labour_price' => $labour_price
    );
}

Fatura sayfası

// Sepet Görünümünü Özelleştirmek
add_filter('woocommerce_get_item_data', 'display_custom_price_breakdown_in_cart', 10, 2);
function display_custom_price_breakdown_in_cart($item_data, $cart_item) {
    $product_id = $cart_item['product_id'];
    $product = wc_get_product($product_id);
    $labour_cost = $product->get_meta('labour_cost');
    
    if ($labour_cost) {
        $price = $product->get_price();
        $split_price = split_product_price($price, $labour_cost, 0.02, 0.20);
        
        $item_data[] = array(
            'name' => __('Product Price', 'woocommerce'),
            'value' => wc_price($split_price['product_price']) . ' + %2 KDV'
        );
        $item_data[] = array(
            'name' => __('Labour Cost', 'woocommerce'),
            'value' => wc_price($split_price['labour_price']) . ' + %20 KDV'
        );
    }
    
    return $item_data;
}

// Fatura Görünümünü Özelleştirmek
add_action('woocommerce_order_item_meta_end', 'display_custom_price_breakdown_in_order', 10, 3);
function display_custom_price_breakdown_in_order($item_id, $item, $order) {
    $product_id = $item->get_product_id();
    $product = wc_get_product($product_id);
    $labour_cost = $product->get_meta('labour_cost');
    
    if ($labour_cost) {
        $price = $product->get_price();
        $split_price = split_product_price($price, $labour_cost, 0.02, 0.20);
        
        echo '<p><strong>' . __('Product Price', 'woocommerce') . ':</strong> ' . wc_price($split_price['product_price']) . ' + %2 KDV</p>';
        echo '<p><strong>' . __('Labour Cost', 'woocommerce') . ':</strong> ' . wc_price($split_price['labour_price']) . ' + %20 KDV</p>';
    }
}