Jest to przykład funkcji, która dodaje niestandardowe pole do edycji produktu w zakładce „Ogólne”. W moim przypadku klient zażyczył sobie na niestandardowe pole o nazwie „Goście”, które będzie można wyświetlić na dowolnej stronie za pomocą krótkiego kodu. Jest to stosunkowo proste rozwiązanie, które na pewno przyda się zagorzałym fanom rozbudowanych funkcji kokpitu.
// Dodawanie nowego pola "Goście" do zakładki "Ogólne" w edycji produktu function add_guests_custom_field() { woocommerce_wp_text_input( array( 'id' => 'guests', 'label' => __('Goście', 'woocommerce'), 'placeholder' => __('Wymień gości', 'woocommerce'), 'desc_tip' => 'true', 'description' => __('Kto będzie gościem', 'woocommerce') ) ); } add_action('woocommerce_product_options_general_product_data', 'add_guests_custom_field'); // Zapisywanie wartości pola "Goście" function save_guests_custom_field($post_id) { $guests = isset($_POST['guests']) ? $_POST['guests'] : ''; update_post_meta($post_id, 'guests', $guests); } add_action('woocommerce_process_product_meta', 'save_guests_custom_field'); // Wyświetlanie wartości pola "Goście" za pomocą krótkiego kodu function display_guests_shortcode($atts) { global $product; if (!$product) { return ''; } $guests = get_post_meta($product->get_id(), 'guests', true); if (empty($guests)) { return ''; } return sprintf('<div class="product-guests">%s</div>', $guests); } add_shortcode('display_guests', 'display_guests_shortcode');
- Dodawanie nowego pola „Goście” do zakładki „Ogólne” w edycji produktu:Funkcja
add_guests_custom_field()
dodaje nowe pole tekstowe o nazwie „Goście” do zakładki „Ogólne” w edycji produktu. Używa ona funkcjiwoocommerce_wp_text_input()
, aby utworzyć pole z odpowiednimi właściwościami, takimi jak identyfikator, etykieta, symbol zastępczy i opis. Następnie funkcjaadd_action()
rejestruje funkcjęadd_guests_custom_field()
jako akcję, która będzie wywoływana podczas wczytywania zakładki „Ogólne” w edycji produktu. - Zapisywanie wartości pola „Goście”:Funkcja
save_guests_custom_field()
zapisuje wartość wprowadzoną w polu „Goście” dla danego produktu. Odczytuje ona wartość pola z tablicy$_POST
, a następnie używa funkcjiupdate_post_meta()
do zaktualizowania wartości tego pola w bazie danych. Podobnie jak w przypadku dodawania pola, funkcjaadd_action()
rejestruje funkcjęsave_guests_custom_field()
jako akcję, która będzie wywoływana podczas zapisywania produktu. - Wyświetlanie wartości pola „Goście” za pomocą krótkiego kodu: Funkcja
display_guests_shortcode()
jest odpowiedzialna za wyświetlanie wartości wprowadzonej w polu „Goście” na stronie produktu. Najpierw uzyskuje ona obiekt bieżącego produktu, a następnie odczytuje wartość pola „Goście” z bazy danych za pomocą funkcjiget_post_meta()
.Jeśli wartość pola „Goście” nie jest pusta, funkcja zwraca wartość jako ciąg znaków HTML, który będzie wyświetlany na stronie produktu. W przeciwnym razie zwraca pusty ciąg znaków. Na koniec, funkcjaadd_shortcode()
rejestruje funkcjędisplay_guests_shortcode()
jako krótki kod o nazwiedisplay_guests
, który można użyć na stronie produktu, aby wyświetlić wartość pola „Goście”.
Podsumowując, ten kod dodaje nowe pole „Goście” do zakładki „Ogólne” w edycji produktu, zapisuje wprowadzoną wartość tego pola w bazie danych i umożliwia wyświetlanie wartości za pomocą krótkiego kodu [display_guests]
na stronie produktu.