Seite 1 von 1

Zusätzliche Variable in email

Verfasst: 05.01.2021 16:42
von chris1278
Hallo meine Frage ist folgende. Ich supporte ein Forum und dort würde ich gerne in die Erste E-Mail, die der Benutzer bekommt, eine zusätzliche Variable einfügen.

Ich habe eh schon eine Eigene kleine Extension dort am Laufen die 1-2 Variablen der PHP Standard überschreibt dabei handelt es sich um die Nutzungsbedingungen und die Datenschutzerklärung.

Aber um diese geht es nicht. Aber diese kann ich für meine Sache, die ich hier möchte ergänzen.

Also die E-Mail die der Benutzer bekommt, befindet sich in der Datei. admin_welcome_inactive.txt

Diese würde ich gerne um folgende Textstelle ergänzen:

Um deinen Mitgliedsbeitrag zu Bezahlen, kannst du aus einer unserer Zahlungsbedingungen auswählen. Diese Zahlungsbedingungen kannst du unter: {VARIABLE1} einsehen.

Es geht hierbei um die Variable {VARIABLE1}. Diese müsste ich ja in der listner.php in meiner Extension deklarieren da ich diese ja nicht in die coredateien schreiben will.

Ich hab das Construct so:

Code: Alles auswählen

public function __construct($phpbb_root_path, \phpbb\user $user, \phpbb\template\template $template)
	{
		$this->root_path = $phpbb_root_path;
		$this->user = $user;
		$this->template = $template;
	}

	static public function getSubscribedEvents()
	{
		return array(
			'core.user_setup' => 'load_language_on_setup',
			'core.page_header_after' 		=> 	'variable',
		);
	}
Und den Teil der Variable habe ich so gestalltet:

Code: Alles auswählen

public function variable()
	{
		{
			$this->template->assign_vars(array(
				
				'U_VARIABLE1' => $this->({root_path}/app.php/zahlungsmglichkeiten);
			));
		}
	}

Das ziel was zu laden wäre. Verlinkt werden sollte auf eine Seite, die mit der Extension pages erstellt worden ist

Re: Zusätzliche Variable in email

Verfasst: 05.01.2021 18:24
von Kirk
Hi
Als erstes müstest du das richtige PHP Event nehmen core.ucp_register_user_row_after, dann musst du die Variable WELCOME_MSG ansprechen,das Problem dabei ist das du keine zusätzlich Variable einfügen kannst (kommt sonst zu Fehlermeldung), sondern die vorhandenen z.B. so ändern musst:

Code: Alles auswählen

'WELCOME_MSG'	=> htmlspecialchars_decode(sprintf($this->user->lang['WELCOME_SUBJECT'], $this->config['site_description'])),
in der Languge Datei sieht es dann so aus:

Code: Alles auswählen

	'WELCOME_SUBJECT'	=> 'Willkommen um deinen Mitgliedsbeitrag zu Bezahlen, kannst du aus einer unserer Zahlungsbedingungen auswählen. Diese Zahlungsbedingungen kannst du unter: %1$s einsehen.',
Ich hab jetzt bei meinen Test die Variable site_description genommen, du müsstest das ganze auf deine Bedürfnisse anpassen.
Das ganze sieht dann so aus:

Code: Alles auswählen

	public function membership_subscription()
	{
		if ($this->config['email_enable'])
		{
			include_once($this->phpbb_root_path . 'includes/functions_messenger.' . $this->php_ext);
			$this->template->assign_vars(array(
				'WELCOME_MSG'	=> htmlspecialchars_decode(sprintf($this->user->lang['WELCOME_SUBJECT'], $this->config['site_description'])),
			));
		}
	}

Re: Zusätzliche Variable in email

Verfasst: 05.01.2021 18:28
von chris1278
Ich werde mal testen.