• Hi Leute, auf der Produktseite „In neuen Entwurf kopieren“ benutze ich standardmäßig beim Hinzufügen von neuen Produkten, da ich viele gleiche Produkte habe. Was ich gerne hätte, wäre folgendes:
    1. Im Produktnamen soll NICHT (Kopie) hinzugefügt werden
    2. Gleiches im Permalink, da soll nur am Ende raufgezählt werden, da steht bei mir immer eine Zahl, und die soll um 1 erhöht werden
    3. Gleiches bei der Artikelnummer, da steht bei mir am Ende eine Zahl, die soll um 1 erhöht werden.

    Ist das machbar mit etwas PHP Code?

    Moderatorenhinweis: Den letzten Satz habe ich gelöscht, weil Jobangebote hier im Forum unerwünscht sind.

    LG Stefan

    • Dieses Thema wurde geändert vor 6 Monaten, 3 Wochen von Hans-Gerd Gerhards. Grund: Moderatorenhinweis
Ansicht von 1 Antwort (von insgesamt 1)
  • Sollte damit gehen:

    add_filter('woocommerce_duplicate_product', 'custom_duplicate_product', 10, 2);
    
    function custom_duplicate_product($new_id, $post) {
    // Entferne "(Kopie)" aus dem Produktnamen
    $new_post_title = str_replace('(Kopie)', '', $post->post_title);
    wp_update_post(array('ID' => $new_id, 'post_title' => $new_post_title));
    
    // Permalink und Artikelnummer anpassen
    $new_post = get_post($new_id);
    $new_slug = increment_string_number($new_post->post_name);
    $new_sku = increment_string_number(get_post_meta($new_id, '_sku', true));
    
    // Update Permalink und SKU
    wp_update_post(array('ID' => $new_id, 'post_name' => $new_slug));
    update_post_meta($new_id, '_sku', $new_sku);
    
    }
    
    function increment_string_number($string) {
    // Finde die letzte Nummer im String und erhöhe sie um 1
    preg_match('/(\d+)$/', $string, $matches);
    $number = $matches ? (int) $matches[0] : 0;
    return preg_replace('/\d+$/', ++$number, $string);
    }
Ansicht von 1 Antwort (von insgesamt 1)
  • Das Thema „Produkt: In neuen Entwurf kopieren – Verhalten ändern“ ist für neue Antworten geschlossen.