Die Frage ist: welche Datenbank-Eintr?ge müssen gesetzt werden, damit eine Lieferzeit angezeigt wird, für die es bereits einen Slug gibt (nur Default-Zeitangabe, keine L?ndervarianten)?
]]>Nur ist es aber so, dass wenn zum Beispiel vom Produkt 1 Stück auf Lager ist und der Kunde zwei Stück in den Warenkorb legt, im Warenkorb und an der Kasse weiterhin die Lieferzeit für die Lagermenge angezeigt wird. Was in diesem Fall leider der falsche Wert ist. Hier sollte die alternative Lieferzeit angezeigt werden.
Hat jemand eine Idee, wie wir es hinbekommen, dass im Warenkorb geprüft wird, ob die Menge im Warenkorb die Menge des Lagerbestands überschreit und in diesem Fall auf die zweite Lieferzeit ausgegeben wird?
Ich stehe leider auf dem Schlauch und meine PHP-Kenntnisse sind nicht all zu gross.
Folgenden Code haben wir aktuell in der functions.php im Einsatz
/*================================================
Lieferzeitenanzeige bei Lieferrückstand
================================================*/
add_action( 'woocommerce_process_product_meta', 'wdt_process_delivery_time_fallback', 10, 2 );
function wdt_process_delivery_time_fallback( $id, $post ){
$dtf_id = $_POST['delivery_time_fallback'];
if( $dtf_id === '' ) {
delete_post_meta( $id, '_delivery_time_fallback' );
} else {
update_post_meta( $id, '_delivery_time_fallback', $dtf_id );
}
}
add_action( 'woocommerce_product_options_stock_status', 'wdt_add_deliver_time_fallback' );
function wdt_add_deliver_time_fallback() {
// Lieferzeiten aus den Terms generieren
$delivery_times = get_terms( array(
'taxonomy' => 'product_delivery_time',
'hide_empty' => false,
) );
$options[''] = __( 'Keine', 'woocommerce');
foreach ($delivery_times as $key => $term) {
$options[$term->term_id] = $term->name;
}
// gew?hlte Lieferzeit aufbereiten
$dtf_id = get_post_meta( get_the_ID(), '_delivery_time_fallback', true );
// Element generieren
woocommerce_wp_select( array(
'id' => 'delivery_time_fallback',
'label' => __('Lieferzeit bei Lieferrückstand', 'woocommerce'),
'options' => $options,
'value' => $dtf_id,
'desc_tip' => true,
'description' => __( 'Lieferzeit die angezeigt wird, wenn sich der Artikel im Lieferrückstand befindet.' ),
) );
}
add_filter( 'woocommerce_germanized_delivery_time_backorder_html', 'wdt_adjust_delivery_time_html', 10, 4 );
function wdt_adjust_delivery_time_html( $text, $product ) {
// this must be a variation if we can find a parent_id
if ( $product->get_parent_id() ) {
$id = $product->get_parent_id();
} else {
$id = $product->get_id();
}
// let's try to find the parent delivery time in postmeta
if ( metadata_exists( 'post', $id, '_delivery_time_fallback' ) ) {
$delivery_times = get_terms( array(
'taxonomy' => 'product_delivery_time',
'hide_empty' => false,
) );
$dtf_id = get_post_meta( $id, '_delivery_time_fallback', true );
foreach ($delivery_times as $dtf) {
if ( $dtf->term_id == $dtf_id) {
$delivery_time = $dtf->name;
break;
}
}
} else {
$delivery_time = '1-2 Wochen ab Bestelldatum';
}
return 'Lieferzeit: '.$delivery_time;
}
In den Germanized-Einstellungen haben wir die Option “Lieferzeit ausblenden falls das Produkt im Lieferrückstand ist.” aktiviert.
]]>since you have added the feature: “Configure delivery times on a per-country base” in latest plugin update I got issues with delivery times on variations. They are not shown anymore in the shop page. Disabling the variations for frontend instead does show the delivery times properly.
It seems like the function “use default instead” (German: Gleiche wie übergeordnet) doesn’t seem to work anymore. Function is greyed out on product variations, not fetched when saving variations, and beeing ignored unless one does set a second country based delivery time on parent level of specific product. Then it works, and also only by setting up delivery time on each single product variation – which is a huge and unneccessary workload.
What I did meanwhile: Disabled all variations plugins, disabled all plugins known with causing issues in general and also disabling all caching plugins. But didn’t have an impact on above described issue.
What can I do?
Regards,
D.
]]>ich hatte hier letztens schon einen Thread, da Germanized die Preise nicht angezeigt hat, das konnte super gel?st werden.
Jetzt habe ich ein ?hnliches Problem, allerdings mit den Preisauszeichnungen “Versandkosten” und “Lieferzeit”. Ich habe alles in den Einstellungen aktiviert und m?chte gerne für beides einen Hinweis, sowohl für die Produktdetailseite als auch für die Produktlisten, allerdings taucht nichts davon auf.
Es liegt vermutlich wieder am Theme, leider hab ich keine tiefere Ahnung von php usw, um irgendwie selbst auf eine L?sung zu kommen. Deshalb wollte ich mal fragen, ob es da vielleicht auch so eine simple L?sung gibt wie bei den Preisen.
ich habe hunderte von Produkten mit zwei verschiedenen Lieferzeiten und kann diese natürlich nicht alle einzelnd den Produkten hinterlegen. Gibt es eine M?glichkeit diese per CSV einzuspielen?
Vielen Dank für die Hilfe.
]]>