Dann mach doch mal vor dem
return $test;
ein
var_dump($test).
Du hast da sicher ein array, weil es 2 oder mehr varianten gibt. Denn Du holst ja nicht das custom field für die Variante, sondern für das Produkt.
Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.
Sie haben schon ein Benutzerkonto? Melden Sie sich hier an.
Jetzt anmeldenHier können Sie ein neues Benutzerkonto erstellen.
Neues Benutzerkonto erstellenDann mach doch mal vor dem
return $test;
ein
var_dump($test).
Du hast da sicher ein array, weil es 2 oder mehr varianten gibt. Denn Du holst ja nicht das custom field für die Variante, sondern für das Produkt.
Das Custom Field heisst "_text_field".
Ja, da würde ich einen Shortcode schreiben, der das Custom Field abruft. Nur: woher kommt die ID für das Custom-Field? Denn das hängt ja davon ab, welche Variante man nimmt. Das Custom-Field für "Rot" kann ein ganz anderes sein als das für "Grün". Welches willst Du dann aufrufen?
So funktioniert das:
function get_availability_bar( $product_id, $max_stock, $variation_name ) {
$stock = get_post_meta( $product_id, '_stock', true );
if ($stock>0) {
echo $variation_name." - Auf Lager<BR>";
} else {
echo $variation_name." - Nicht auf Lager<BR>";
}
}
Alles anzeigen
Einfach die Funktion get_availability_bar durch das obige ersetzen
Das ist ja auch eine ABFRAGE. Wenn stock==0, dann echo "Out of stock". Sonst echot (gibt er aus) das normale "Diagramm".
Ich probiere das gerade mal lockal aus und poste es dann.
Aber für solche Aufgaben solltest Du Dir ohne PHP evtl. einen Dienstleister nehmen.
Dann müsstest Du mit der Variable $stock aus der Funktion get_availability_bar arbeiten.
Wenn $stock==0: nicht auf Lager, wenn $stock>0: auf Lager.
Hast Du in der gleichen Funktion in der "Zeichenfunktion" für die Grafik:
Zitat<?php if ( 0 == $stock ) { echo ' out-of-stock'; } ?>' style='width: <?php echo $percentage; ?>%;'><?php echo (int) $stock; ?>
Du machst 2 Seiten - "Start" und "Blog". "Start" ist Deine statische Startseite, "Blog" Deine Blogseite.
Und jetzt stellst Du unter Einstellungen -> Lesen beim Punkt "Startseite zeigt" deine Seite "Start" als Startseite ein, und die Seite "Blog" als Beitragseite.
Jetzt kannst Du von "Start" auf "Blog" verlinken.
Na ja, seine Page hat 2,8 MB laut Pingdom - da ist die Dauer nicht wirklich ein Wunder :smile:
ZitatAlles anzeigenfunction woocommerce_availability_chart_func( $atts ) {
global $product;
if ( 'variable' == $product->product_type ) :$available_variations = $product->get_available_variations();
endif;
foreach ( $available_variations as $variation ) :
$max_stock = $product->get_total_stock();
$var = wc_get_product( $variation['variation_id'] );
$variation_name = variation_name( $variation['attributes'] );
get_availability_bar( $variation['variation_id'], $max_stock, $variation_name );endforeach;
return $output;
}
add_shortcode( 'instock', 'woocommerce_availability_chart_func' );function get_availability_bar( $product_id, $max_stock, $variation_name ) {
$stock = get_post_meta( $product_id, '_stock', true );
if ($max_stock>0) {
$percentage = round( $stock / $max_stock * 100 );
} else {
$percentage = 0;
}
?><div class='bar-wrap'><div class='variation-name'><?php echo $variation_name; ?></div>
<div class='bar'>
<div class='filled<?php if ( 0 == $stock ) { echo ' out-of-stock'; } ?>' style='width: <?php echo $percentage; ?>%;'><?php echo (int) $stock; ?></div>
</div></div><?php
}
function variation_name( $attributes ) {
$variation_name = '';
foreach ( $attributes as $attr => $value ) :
if ( term_exists( $value, str_replace( 'attribute_', '', $attr ) ) ) :
$term = get_term_by( 'slug', $value, str_replace( 'attribute_', '', $attr ) );
if ( isset( $term->name ) ) :
$variation_name .= $term->name . ', ';endif;
else :
$variation_name .= $value . ', ';
endif;
endforeach;
return rtrim( $variation_name, ', ' );
}
Kann man noch beliebig aufbohren/vereinfachen.
Shortcode ist [instock]
Tja, dann musst Du wohl neu laden und hoffen, dass das in einer Revision oder so noch zum größten Teil da ist...?
Text kopieren, EditPad oder Word, und dann neu laden?
Templates in den Theme-Ordner auslagern (und hier in den Ordner woocommerce/emails), schon hast Du mit Woocommerce Updates keine Probleme mehr.
Hab ich schon mehrfach und immer so 4-5 mal erhalten. Ist nix dubios dran.
BuddyPress verträgt sich (noch) nicht mit PHP 7.
Das ist doch gar nicht so schwer.
Erstmal fügst Du ein Custom Field zu Attachments hinzu:
https://code.tutsplus.com/articles/creat…ress--net-13076
https://code.tutsplus.com/articles/creat…ress--net-13076
Da gibst Du dann den Wert für Dein Data Field ein.
Und dann nutzt Du den Filter
wp_get_attachment_image_attributes ,
holst Den Wert aus dem Custom Field und gibst die Attribute plus data-Attribut zurück.
Kann man,ja, zB mit Shortcodes oder einem Plugin.
Ich habe das Plugin WP w3all (https://de.wordpress.org/plugins/wp-w3all-phpbb-integration/) dazu benutzt.
Erst im Hauptverzeichnis von WP in eigenem Ordner das Forum installiert.
Dann das Plugin.
Soweit ich bisher sehen, tut das völlig problemlos, und phpBB läuft in einem IFrame auf der Seite
add_filter( 'register', 'my_register_link' );
function my_register_link( $link ) {
return 'http://exampledomain.com/my_register_page/';
}