<?php
add_action('woocommerce_product_options_stock_status', function() {
woocommerce_wp_text_input(array(
'id' => 'onbackorder_message',
'value' => get_post_meta(get_the_ID(), 'onbackorder_message', true),
'label' => 'In nabestelling melding',
'placeholder' => 'dd-mm-yyyy',
'description' => 'Wordt getoond als status "in nabestelling" actief is (dag-maand-jaar)'
));
});
add_action('woocommerce_process_product_meta', function($id, $post) {
if (!empty($_POST['onbackorder_message'])) {
update_post_meta($id, 'onbackorder_message', $_POST['onbackorder_message']);
} else {
delete_post_meta($id, 'onbackorder_message');
}
}, 10, 2);
add_action( 'woocommerce_variation_options_pricing', function($loop, $variation_data, $variation) {
woocommerce_wp_text_input(array(
'id' => 'onbackorder_message[' . $loop . ']',
'value' => get_post_meta($variation->ID, 'onbackorder_message', true),
'label' => 'In nabestelling melding',
'placeholder' => 'dd-mm-yyyy',
'wrapper_class' => 'form-row form-row-wide',
'description' => 'Wordt getoond als status "in nabestelling" actief is (dag-maand-jaar)'
));
}, 10, 3);
add_action('woocommerce_save_product_variation', function($variation_id, $i) {
$custom_field = $_POST['onbackorder_message'][$i];
if (isset($custom_field)) {
update_post_meta($variation_id, 'onbackorder_message', esc_attr($custom_field));
}
}, 10, 2);
add_filter( 'woocommerce_available_variation', function($variation) {
$wc_variation = wc_get_product( $variation['variation_id'] );
if ( $variation['is_in_stock'] ) {
if($wc_variation->get_stock_status() == 'instock') {
$availability_html = '<div class="s7box__stock">Op voorraad</div>';
} else {
$availability_html = '<div class="s7box__stock d-inline mr-1">In bestelling</div>';
if($onbackorder_message = get_post_meta($variation[ 'variation_id' ], 'onbackorder_message', true)) {
if(strtotime($onbackorder_message) > strtotime(date('d-m-Y'))) {
$availability_html .= '<span class="fs-sm">(verwacht: ' . $onbackorder_message . ')</span>';
}
}
}
} else {
$availability_html = '<div class="s7box__stock s7box__stock--unavailable">Niet op voorraad</div>';
}
$variation['availability_html'] = $availability_html;
return $variation;
});
add_action('woocommerce_product_options_stock_status', function() {
woocommerce_wp_text_input(array(
'id' => 'onbackorder_message',
'value' => get_post_meta(get_the_ID(), 'onbackorder_message', true),
'label' => 'In nabestelling melding',
'placeholder' => 'dd-mm-yyyy',
'description' => 'Wordt getoond als status "in nabestelling" actief is (dag-maand-jaar)'
));
});
add_action('woocommerce_process_product_meta', function($id, $post) {
if (!empty($_POST['onbackorder_message'])) {
update_post_meta($id, 'onbackorder_message', $_POST['onbackorder_message']);
} else {
delete_post_meta($id, 'onbackorder_message');
}
}, 10, 2);
add_action( 'woocommerce_variation_options_pricing', function($loop, $variation_data, $variation) {
woocommerce_wp_text_input(array(
'id' => 'onbackorder_message[' . $loop . ']',
'value' => get_post_meta($variation->ID, 'onbackorder_message', true),
'label' => 'In nabestelling melding',
'placeholder' => 'dd-mm-yyyy',
'wrapper_class' => 'form-row form-row-wide',
'description' => 'Wordt getoond als status "in nabestelling" actief is (dag-maand-jaar)'
));
}, 10, 3);
add_action('woocommerce_save_product_variation', function($variation_id, $i) {
$custom_field = $_POST['onbackorder_message'][$i];
if (isset($custom_field)) {
update_post_meta($variation_id, 'onbackorder_message', esc_attr($custom_field));
}
}, 10, 2);