Pridanie nového poľa produktu
Pridanie nového vlastného poľa produktu vo Woocomerce
//pridanie pola mje pole
if ( ! function_exists( 'moje_pole_create_custom_field' ) ) :
function skladova_pozicia_create_custom_field() {
$args = array(
'id' => '_moje_pole_field',
'label' => __( 'Moja pole' ),
'class' => 'cfwc-custom-field',
'desc_tip' => true,
'description' => __( 'Moje pole'),
);
woocommerce_wp_text_input( $args );
}
endif;
add_action( 'woocommerce_product_options_inventory_product_data', 'moje_pole_create_custom_field' );
////ulozenie hodnoty
if ( ! function_exists( 'moje_pole_save_field' ) ) :
function moje_pole_save_field( $post_id ) {
$product = wc_get_product( $post_id );
$title = isset( $_POST['_moje_pole_field'] ) ? $_POST['_moje_pole_field'] : '';
$product->update_meta_data( '_moje_pole_field', sanitize_text_field( $title ) );
$product->save();
}
endif;
add_action( 'woocommerce_process_product_meta', 'moje_pole_save_field' );
Plugin „úrovne produktu“ ktorý pridá do administračného rozhrania produktu 2 polia „úroven“ a „vlastna_uroven“ a podla vyplnene hodnoty sa potom zobrazí na stránke produktu.

<?php
/*
Plugin Name: Úrovne produktov
Plugin URI:
Description: Pridá možnosť nastaviť produktom 3 úrovne použitia alebo vlastnú hodnotu.
Version: 1.0
Author: Areaweb
*/
//******* PRIDANIE POLIA UROVEN
if ( ! function_exists( 'uroven_create_custom_field' ) ) :
function uroven_create_custom_field() {
?>
<div class="uroven_options_group">
<?php
$args1 = array(
'id' => '_uroven_field',
'label' => __( 'Úroveň použitia' ),
'class' => 'input-text short', // pridame css classy
'desc_tip' => true,
'description' => __( 'Úroveň'),
'options' => array(
'' => 'vybrať úroveň',
'profi' => 'profi',
'polo-profi' => 'polo-profi',
'hobby' => 'hobby',
'vlastná hodnota' => 'vlastná hodnota',
),
);
woocommerce_wp_select( $args1 ); // od tohto záleží či input bude text, zoznam, checkbox...
$args2 = array(
'id' => '_vlastna_uroven_field',
// 'label' => __( 'Úroveň použitia' ),
'class' => 'input-text',
'desc_tip' => true,
'description' => __( 'Vlastna úroveň použitia'),
);
woocommerce_wp_text_input( $args2 ); // od tohto záleží či input bude text, zoznam, checkbox...
?>
</div>
<?php
}
endif;
add_action( 'woocommerce_product_options_general_product_data', 'uroven_create_custom_field' );
//******* ULOZENIE HODNOTY
if ( ! function_exists( 'uroven_save_field' ) ) :
function uroven_save_field( $post_id ) {
$product = wc_get_product( $post_id );
$title = isset( $_POST['_uroven_field'] ) ? $_POST['_uroven_field'] : '';
$title2 = isset( $_POST['_vlastna_uroven_field'] ) ? $_POST['_vlastna_uroven_field'] : '';
$product->update_meta_data( '_uroven_field', sanitize_text_field( $title ) );
$product->update_meta_data( '_vlastna_uroven_field', sanitize_text_field( $title2 ) );
$product->save();
}
endif;
add_action( 'woocommerce_process_product_meta', 'uroven_save_field' );
//******* PRIDANIE NA STRANKU PRODUKTU
add_action( 'woocommerce_single_product_summary', 'zobraz_uroven_pouzitia', 1); // 1. moznost
//add_action( 'woocommerce_before_single_product', 'zobraz_uroven_pouzitia', 10); // 2. moznost
//add_action( 'woocommerce_before_single_product_summary', 'zobraz_uroven_pouzitia', 10); // 3. moznost
//******* PRIDANIE DO LOOPU
add_action( 'woocommerce_shop_loop_item_title', 'zobraz_uroven_pouzitia',40); // 1. moznost
//add_action( 'woocommerce_before_shop_loop_item', 'zobraz_uroven_pouzitia'); // 2. moznost
function zobraz_uroven_pouzitia(){
// global $product;
// $id = $product->get_ID();
$id = get_the_ID();
$uroven = get_post_meta( $id, '_uroven_field', true );
$vlastna_uroven = get_post_meta( $id, '_vlastna_uroven_field', true );
if($uroven!=''){ echo '<small style="position:absolute"><i class="fas fa-arrow-alt-circle-up"></i> admin mod</small>';} // ADMIN MOD SHOW
if( $uroven =='profi' ){
echo '<span class="uroven-nalepka" style="background-color:rgb(236,177,60);"><i class="fas fa-star"></i> Profesionál</span>';
}
if( $uroven =='polo-profi' ){
echo '<span class="uroven-nalepka" style="background-color:#3474BF;"><i class="fas fa-warehouse"></i> Polo-profi</span>'; //<i class="fas fa-star-half-alt"></i>
}
if( $uroven =='hobby' ){
echo '<span class="uroven-nalepka" style="background-color:rgb(119,184,234);"><i class="fas fa-user-alt"></i> Hobby</span>';
}
else if ($vlastna_uroven!=''){
echo '<span class="uroven-nalepka" style="background-color:rgb(119,184,234);"><i class="fas fa-user-alt"></i>  ' . get_post_meta( $id, '_vlastna_uroven_field', true ) . '</span>';
}
}
Pridá na stránku CSS :
// ********** PRIDANIE CSS
add_action( 'wp_head', 'pridaj_css_uroven' );
function pridaj_css_uroven(){
//if(is_single()){
echo '
<style>
.uroven-nalepka{
color:white;
padding:5px 17px;
font-size:12px;
}
.single-product .uroven-nalepka{
position:relative;
top:-20px;
}
.section-products-carousel .product-loop-body .woocommerce-loop-product__title{
display:none
}
</style>
';
// }
}
Pridá JavaScript do admin menu:
add_action( 'admin_footer', 'pridaj_js_css_admin_uroven' );
function pridaj_js_css_admin_uroven(){
echo '<style>
</style>';
echo '
<script>
let vlastnaUrovenField = document.querySelector("._vlastna_uroven_field_field");
let uroven = document.querySelector("#_uroven_field")
if( document.querySelector("#_vlastna_uroven_field").value!="" ) {
uroven.value="vlastná hodnota"
}
else {
vlastnaUrovenField.style.display="none"
}
uroven.addEventListener("change", function(){
if(uroven.value == "vlastná hodnota"){
vlastnaUrovenField.style.display="block"
}
else vlastnaUrovenField.style.display="none"
console.log("localhst script")
})
</script>
';
}