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>';
}
}