Wie shortcode in Shortcode aufrufen?

  • Ich hatte folgendes im Pageeditor versucht:

    [pdfjs-viewer url=/wp-content/uploads/pdfs/[wpcf7_session_id]/vertrag.pdf viewer_width=100% viewer_height=1500px fullscreen=true fullscreen_text='Im Vollbildmodus anschauen' download=true print=true]

    das Problem ist der shortcode für die ID.

    Weiss einer wie ich das anders machen kann? Muss ich das im Backend machen?

    Einmal editiert, zuletzt von ivan354 (1. Juli 2022 um 22:51)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Schreibe z.B. [FONT=Courier New]%wpcf7_session_id%[/FONT] statt [FONT=Courier New][wpcf7_session_id][/FONT] in den Editor und ersetze die ID dann z.B. so:

    Code
    function b3317133_pdfjs_viewer_insert_id( $output, $tag, $attr ) {
       if ( 'pdfjs-viewer' != $tag )
           return $output;
       return str_replace( '%wpcf7_session_id%', do_shortcode( '[wpcf7_session_id]' ), $output );
    }
    add_filter( 'do_shortcode_tag', 'b3317133_pdfjs_viewer_insert_id', 10, 3 );
  • Code
    return str_replace( '%wpcf7_session_id%', do_shortcode( '[wpcf7_session_id]' ), $output );

    grusel... wird es bei dem Code keinem schlecht?

    10, 3 ); klar doch - funktioniert immer...

    Mit offenen Augen träumen

  • Was genau verstehst Du an dem Beispiel nicht? Wie man einen String suchen und ersetzen kann? Wie man das Ergebnis eines Shortcodes erhält? Wie man in einem Filter einen Wert zurückgeben kann? Und was funktioniert nicht? [FONT=Courier New]$output, $tag, $attr[/FONT] sind 3 Argumente, mehr zur Funktionsweise von [FONT=Courier New]add_filter()[/FONT] in der WordPress Dokumentation...

  • Schreibe z.B. [FONT=Courier New]%wpcf7_session_id%[/FONT] statt [FONT=Courier New][wpcf7_session_id][/FONT] in den Editor und ersetze die ID dann z.B. so:

    Code
    function b3317133_pdfjs_viewer_insert_id( $output, $tag, $attr ) {
       if ( 'pdfjs-viewer' != $tag )
           return $output;
       return str_replace( '%wpcf7_session_id%', do_shortcode( '[wpcf7_session_id]' ), $output );
    }
    add_filter( 'do_shortcode_tag', 'b3317133_pdfjs_viewer_insert_id', 10, 3 );

    @b3317133

    Danke!!!! Hat sofort funktioniert!!! Geil!!! :)

    Ich würde jetzt noch gerne einen button mit avada einfügen der den folgenden Link enthält:
    https://www.websiteurl/wp-content/uploads/pdfs/[wpcf7_session_id]/vertrag.pdf

    wenn ich diese url mit shortcode einfüge dann klappt es nicht. Wie könnte das gelöst werden?

    2 Mal editiert, zuletzt von ivan354 (7. Juli 2022 um 18:27)

  • Am besten direkt den mitgekauften Avada Support befragen, ob/wie Shortcodes im URL Feld des Buttons ausgeführt werden können.

    Geht möglicherweise über irgendeinen Filter, dafür bräuchte man aber Einblick in den Avada Code.

    Bei Dingen wie persönliche IDs uä. im Frontend auf die Cache Problematik achten, falls sowas eingesetzt wird...

  • Ergänzung: Habe hier noch eine ältere Version von Avada gefunden und kurz in den Code geschaut, genauer in die Datei [FONT=Courier New]plugins/fusion-builder/shortcodes/fusion-button.php[/FONT], daraus ergibt sich theoretisch folgende Möglichkeit, ungetestet:

    Schreibe z.B. [FONT=Courier New]%wpcf7_session_id%[/FONT] statt [FONT=Courier New][wpcf7_session_id][/FONT] in die Button URL und ersetze die ID dann z.B. so:

    Code
    function b3317133_fusion_element_button_content( $html, $args ) {
        return str_replace( '%wpcf7_session_id%', do_shortcode( '[wpcf7_session_id]' ), $html );
    }
    add_filter( 'fusion_element_button_content', 'b3317133_fusion_element_button_content', 10, 2 );
  • Funktioniert leider nicht. Der Link wird so aufgerufen dass in der url immer noch %wpcf7_session_id% steht. Kann ich iwie anders den Shortcode aufrufen? Geht das mit einem Codefeld in Avada? Oder muss ich im Backend iwie die Seite verändern? Wobei mir unklar ist wie ich da vorgehen müsste wenn ich einen Button für eine spezifische Seite übers Backend einfügen will.

    Einmal editiert, zuletzt von Olaf (19. Juli 2022 um 12:38)

  • https://www.fhg-zweitmarkt.de/maklervertrag/…rtrag-erstellt/

    Der untere Button zum herunterladen.
    Diese Seite mit den zwei Buttons wird normalerweise angezeigt wenn man einen Maklervertrag ausgefüllt hat über das Formular. Am Ende vom Formular gibt es einen Redirect von dem Formular zu dieser Seite. (Momentan ist der Redirect aber ausgeschaltet).

    Wenn man das Formular Maklervertrag ausfüllt wird aber ein Cookie gesetzt werden mit der wpcf7_session_id.

  • Offenbar wird der Code des Filters bei Dir nicht ausgeführt. Wenn der Code ausgeführt würde, wäre der Platzhalter ersetzt oder leer/entfernt, auf jeden Fall nicht mehr im Button vorhanden.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!