Niestandardowe pola „Ogólne” do edycji produktu

Z nowym rokiem postanowiliśmy udoskonalić stronę naszego laboratorium. Przez co pojawiło się sporo rzeczy, które trzeba było dodać aby to zaczęło lepiej i sprawniej funkcjonować. Jedną z takich rzeczy jest dodanie dwóch niestandardowych pól do zakładki „ogólne” w edycji produktu. Musiały być one spersonalizowane więc trochę czasu mi to zajęło żeby je dodać, a jeszcze więcej żeby je wyświetlić na stronie produktu, ale w końcu się udało i chce się z wami podzielić moimi dokonaniami.

Dwa nowe pola, które musiały się koniecznie pojawić to jak widać na załączonym obrazku powyżej czas realizacji badania i materiał. Schemat tego rozwiązania nie jest w sumie aż tak trudny jak wspomniałem na początku biorąc pod uwagę samo działanie. Pierwszy fragment kodu tworzy pola, które pozwalają nam wpisać zawartość, drugi fragment kodu zapisuje treść a trzeci fragment wczytuje te dane i wyświetla je na stronie produktu.

 function woocommerce_product_custom_fields()
{
  $args = array(
        'id' => 'woocommerce_custom_fields',
        'label' => __('Czas realizacji badania:', 'cwoa'),
  );
  woocommerce_wp_text_input($args);
}
 add_action('woocommerce_product_options_general_product_data', 'woocommerce_product_custom_fields');

//------------------------------------------------------------------------------------------------------------//

function save_woocommerce_product_custom_fields($post_id)
{
    $product = wc_get_product($post_id);
    $custom_fields_woocommerce_title = isset($_POST['woocommerce_custom_fields']) ? $_POST['woocommerce_custom_fields'] : '';
    $product->update_meta_data('woocommerce_custom_fields', sanitize_text_field($custom_fields_woocommerce_title));
    $product->save();
}
add_action('woocommerce_process_product_meta', 'save_woocommerce_product_custom_fields');

//------------------------------------------------------------------------------------------------------------//

function woocommerce_custom_fields_display()
{
  global $post;
  $product = wc_get_product($post->ID);
    $custom_fields_woocommerce_title = $product->get_meta('woocommerce_custom_fields');
  if ($custom_fields_woocommerce_title) {
        printf(
            '<div><label><b><font-face="montserrat" color="black">%s</font></b></label></div>',
            esc_html($custom_fields_woocommerce_title)
			
        );
  }
}
add_action('woocommerce_product_tabs', 'woocommerce_custom_fields_display');


function woocommerce_product_custom_material()
{
  $args = array(
        'id' => 'woocommerce_custom_fields_mat',
        'label' => __('Materiał:', 'cwoa'),
  );
  woocommerce_wp_text_input($args);
}
 
add_action('woocommerce_product_options_general_product_data', 'woocommerce_product_custom_material');

//------------------------------------------------------------------------------------------------------------//

function save_woocommerce_product_custom_material($post_id)
{
    $product = wc_get_product($post_id);
    $custom_fields_woocommerce_title = isset($_POST['woocommerce_custom_fields_mat']) ? $_POST['woocommerce_custom_fields_mat'] : '';
    $product->update_meta_data('woocommerce_custom_fields_mat', sanitize_text_field($custom_fields_woocommerce_title));
    $product->save();
}
add_action('woocommerce_process_product_meta', 'save_woocommerce_product_custom_material');

//------------------------------------------------------------------------------------------------------------//

function woocommerce_custom_fields_material()
{
  global $post;
  $product = wc_get_product($post->ID);
    $custom_fields_woocommerce_title = $product->get_meta('woocommerce_custom_fields_mat');
  if ($custom_fields_woocommerce_title) {
        printf(
            '<div><label><font color="#D5D5D5">Materiał</font><br><b><font-face="montserrat" color="black">%s</font></b></label></div>',
            esc_html($custom_fields_woocommerce_title)
        );
  }
}
 
add_action('woocommerce_product_tabs', 'woocommerce_custom_fields_material');

A tak prezentuje się efekt finalny.

Wystarczy przekopiować kod i wkleić go do pliku functions.php, i oczywiście podmienić nazwy wedle własnego uznania.

Imię:


Nazwisko:


Adres email:


Nazwa Twojej firmy:


NIP Twojej firmy

REGON Twojej firmy



Adres Twojej firmy

Ulica

Kod pocztowy

Miasto

Wybierz bramkę płatniczą na Twojej stronie