Produkt dostępny od dnia
Sklep oferuje produkty specjalistyczne, których produkcja może odwlec się w czasie. W związku z tym przyda się pole z datą określające kiedy dokładnie dany produkt będzie dostępny na sklepie. Woocommerce oferuje możliwość złożenia zamówienia przy zerowym stanie magazynowym, tzw. backorders. No ale nie informuje klienta konkretnie jak długo ma na ten produkt czekać. Dodamy więc takie pole.
function poinformuj_klienta_kiedy_dostepny_porodukt() {
echo '<p class="form_field data_field">';
woocommerce_wp_text_input( array(
'id' => 'data_dostepnosci_produktu',
'label' => __('Data dostępności produktu', 'woocommerce'),
'type' => 'date',
'required' => false,
'style' => 'width: 50%'
)
);
echo '</p>';
}
add_action('woocommerce_product_options_stock_fields', 'poinformuj_klienta_kiedy_dostepny_porodukt' );
function zapis_data_dostepnosci_produktu( $id, $post) {
update_post_meta( $id, 'data_dostepnosci_produktu', $_POST['data_dostepnosci_produktu']);
}
add_action( 'woocommerce_process_product_meta', 'zapis_data_dostepnosci_produktu', 10, 2 );
Teraz wystarczy pokazać wybraną datę przy produkcie, który ma braki magazynowe. Wykorzystamy do tego filtr woocommerce_get_availability
function change_specific_availability_text( $availability ) {
global $product;
if ($availability[ 'class' ] == 'available-on-backorder') {
$data = get_post_meta($product->get_id(),'data_dostepnosci_produktu');
$availability[ 'availability' ] = 'Produkt dostępny od: '.$data[0];
}
return $availability;
}
add_filter( 'woocommerce_get_availability', 'change_specific_availability_text', 20, 1 );