Ankündigung

Einklappen
Keine Ankündigung bisher.

Funktionen global verwenden

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Funktionen global verwenden

    Hallo Leute,

    ich muss zugeben, dass es sehr schwer ist für mein Problem eine geeignete Überschrift zu finden. Es geht um eine Wordpress/Buddypress-Sache. Ich poste es hier, da die Ursache des Problems eher im Bereich PHP-Wissen als Wordpress-Wissen zu finden ist. Außerdem geht es um eine Kombination aus Wordpress und Buddypress, was die Spezialisten beider Lager offenbar überfordert

    Worum geht es?
    Ich habe ein Kontaktformular. Vor dem Absenden greife ich mittels einer Funktion (Wordpress-Funktion bzw Funktion des Kontaktformular-Plugins) ein und führe eine Buddypress-Funktion (= Plugin für ein Soziales Netzwerk auf Basis von Wordpress) aus, die dafür sorgt, dass der Empfänger dieses Kontaktformulars die Person ist, derer Profil man gerade besucht.

    Vielleicht wird es durch den Code deutlicher:
    Der Code befindet sich momentan in der bp-custom.php. Dort werden Funktionen, die Wordpress und Buddypress betreffen, erzeugt und verändert.

    Mein aktueller Stand (funktioniert nicht):
    PHP-Code:
    function mycf7_before_send_mail($WPCF7_ContactForm) {
        
        
    // Die Funktion xprofile_get_field_data gibt die Email-Adresse des akt. Profils zurück
        
    $new_recipient xprofile_get_field_data('Email for contact'bp_displayed_user_id(), $multi_format 'comma');
        
    $mail $WPCF7_ContactForm->prop('mail');
        
    $mail['recipient'] = $new_recipient;
        
    $WPCF7_ContactForm->set_properties( array( 'mail' => $mail ) );
        
    }  
    add_action"wpcf7_before_send_mail""mycf7_before_send_mail" ); 
    Wenn ich die Funktion xprofile_get_field_data durch eine konkrete Email-Adresse ersetze funktioniert es. Beispielsweise so:

    PHP-Code:
    function mycf7_before_send_mail($WPCF7_ContactForm) {
        
        
    // Die Funktion xprofile_get_field_data gibt die Email-Adresse des akt. Profils zurück
        
    $new_recipient "meineadresse@provider.de";
        
    $mail $WPCF7_ContactForm->prop('mail');
        
    $mail['recipient'] = $new_recipient;
        
    $WPCF7_ContactForm->set_properties( array( 'mail' => $mail ) );
        
    }  
    add_action"wpcf7_before_send_mail""mycf7_before_send_mail" ); 
    Andererseits funktioniert die Funktion wenn ich sie direkt in dem Template einfüge wo das Kontaktformular ist.

    Im Template des Kontaktformulars:
    PHP-Code:
    echo xprofile_get_field_data('Email for contact'bp_displayed_user_id(), $multi_format 'comma'); 
    Demnach ist das Problem das Zusammenspiel. Ich muss es irgendwie schaffen, dass klar ist worauf sich die Funktion xprofile_get_field_data bezieht. Ich habe es mit einem global $bp versucht, hatte aber keinen Erfolg.

    Hat jemand eine Idee?


  • #2
    Wie du es schilderst, hängt das recht eindeutig an den internen Abläufen in WordPress/BuddyPress. Wann dort was wie initialisiert wird oder wann wo welcher Kontext besteht und so. Es dürfte reine Glückssache sein, hier jemanden zu finden, der davon Ahnung hat.

    Kommentar

    Lädt...
    X