Grade zusammengesucht und bereits umgesetzt. Das Script ermöglicht ein eigenes Feld im Produkt anzulegen. Z.B. für Produkt-Lager oder zusätzliche Informationen wie Grundpreis oder ähnlichem. Bitte in die functions.php des Themes einfügen.
add_action( 'woocommerce_product_options_pricing', 'cg_custom_product_field' );
function cg_custom_product_field() {
woocommerce_wp_text_input( array( 'id' => 'cg_custom', 'class' => 'wc_input_custom short', 'label' => __( 'Eigenes Feld', 'woocommerce' ) . '' ) );
}
Der erste Abschnitt stellt das Feld im Backend beim Preis da.
add_action( 'save_post', 'cg_custom_save_product' );
function cg_custom_save_product( $product_id ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return;
if ( isset( $_POST['cg_custom'] ) ) {
update_post_meta( $product_id, 'cg_custom', $_POST['cg_custom'] );
} else delete_post_meta( $product_id, 'cg_custom' );
}
Beim Absenden oder autom. Speichern des Formulars wird nun das Feld gespeichert. Oder wenn leer wird das Feld in der Datenbank gelöscht.
add_action( 'woocommerce_single_product_summary', 'cg_custom_show', 6 );
function cg_custom_show() {
global $product;
if ( $product->product_type <> 'variable' ) {
$cg_custom = get_post_meta( $product->id, 'cg_custom', true );
if($cg_custom) {
echo '<p class="cg_custom cg">';
echo '<span class="woocommerce-cg_custom">' . $cg_custom . '</span>';
echo '</p>';
}
}
}
Dieser Abschnitt stellt das Feld im Produkt dar. Das ganze passiert über dem Preis.
function cg_shop_display_custom() {
global $product;
$cg_custom = get_post_meta( get_the_ID(), 'cg_custom', true );
if($cg_baseprice){
echo '<small class="custom">';
echo '<span class="woocommerce-cg_custom">' . woocommerce_price( $cg_custom ) . ' </span>';
_e( 'Eigenes Feld', 'woocommerce' );
echo '</small>';
}
}
add_action( 'woocommerce_after_shop_loop_item_title', 'cg_shop_display_custom', 10 );
Mit diesem Abschnitt wird das Feld auch in der Shop-Ansicht ausgegeben.
add_filter( 'woocommerce_product_tabs', 'cg_fakten_product_tab' );
function cg_fakten_product_tab( $tabs ) {
// Adds the new tab
$tabs['test_tab'] = array(
'title' => __( 'Fakten', 'woocommerce' ),
'priority' => 10,
'callback' => 'cg_fakten_product_tab_content'
);
return $tabs;
}
function cg_fakten_product_tab_content() {
$markup = '<h2>Fakten</h2>';
global $post;
$product = wc_get_product( $post->ID );
$markup .= '<div class="table-responsive"><table><tbody><tr>';
$cg_custom = get_post_meta( $product->id, 'cg_custom', true );
if($cg_custom) {
$markup .= '<tr><td class="label">Eigenes Feld: ';
$markup .= '</td><td class="woocommerce-cg_custom">' . $cg_custom . '%</td></tr>';
}
$markup .= '</tbody></table></div>';
if( $cg_custom ) {
echo $markup;
} else {
echo "Fehlende Angaben werden schnellst möglich ergänzt.";
}
}
Der letzte Abschnitt stellt alle Angaben in einem eigenen Tab auf der Produkt-Seite als Tabelle dar.
