From 30fb031d12761d3acbb70c19d1facc8d603b470c Mon Sep 17 00:00:00 2001
From: Kevin
";
- echo "Ausgabe des Scripts: " . "
";
- echo ""; print_r($out);
-
- exit;
-
- /*return response()->view('cron.result', [
- 'result' => $result,
- 'output' => $out
- ]);*/
- }
-}
\ No newline at end of file
diff --git a/app/Http/Controllers/SyS/SysController.php b/app/Http/Controllers/SyS/SysController.php
index 8eccf511..8529fc88 100644
--- a/app/Http/Controllers/SyS/SysController.php
+++ b/app/Http/Controllers/SyS/SysController.php
@@ -9,7 +9,6 @@ use App\Services\SyS\BuyingsProducts;
use App\Services\SyS\ChangeUserBusinesses;
use App\Services\SyS\CleanHTMLProductDescription;
use App\Services\SyS\Correction;
-use App\Services\SyS\Cronjobs;
use App\Services\SyS\Customers;
use App\Services\SyS\Import;
use App\Services\SyS\ImportDbipCountry;
@@ -53,9 +52,6 @@ class SysController extends Controller
case 'customers':
return Customers::show();
break;
- case 'cronjobs':
- return Cronjobs::show();
- break;
case 'shopping_orders':
return ShoppingOrders::show();
break;
@@ -108,9 +104,6 @@ class SysController extends Controller
case 'customers':
return Customers::store();
break;
- case 'cronjobs':
- return Cronjobs::store();
- break;
case 'shopping_orders':
return ShoppingOrders::store();
break;
diff --git a/app/Http/Controllers/User/MembershipController.php b/app/Http/Controllers/User/MembershipController.php
index 8f842309..18421095 100644
--- a/app/Http/Controllers/User/MembershipController.php
+++ b/app/Http/Controllers/User/MembershipController.php
@@ -9,11 +9,11 @@ use App\Models\ShippingCountry;
use App\Models\ShoppingInstance;
use App\Models\ShoppingOrder;
use App\Models\UserHistory;
-use App\Services\Payment;
use App\Services\UserService;
use App\User;
use Auth;
use Carbon;
+use Illuminate\Database\Eloquent\Collection;
use Illuminate\Support\Facades\Mail;
use Request;
use Util;
@@ -34,11 +34,6 @@ class MembershipController extends Controller
public function index()
{
$user = User::find(Auth::user()->id);
- $diff_months = 0;
-
- if ($user->payment_account) {
- $diff_months = Carbon::now()->diffInMonths(Carbon::parse($user->payment_account)) + 1;
- }
$userShoppingOrders = ShoppingOrder::with('shopping_user', 'shopping_payments')->select('shopping_orders.*')
->where('auth_user_id', '=', $user->id)
@@ -48,10 +43,9 @@ class MembershipController extends Controller
->get();
$userHistoryPaymentOrder = null;
- $userHistoryUpgradeOrder = null;
- /* Bezhalung ist nur 29 Tage vor ablauf möglich */
- /* isRenewalAccount payment_account date - config('mivita.renewal_days') Vertragsverlängerung */
+ /* Die Zahlung ist erst ab config('mivita.renewal_days') Tagen vor Ablauf möglich.
+ Geht sie ein, verlängert sich die Mitgliedschaft um ein Jahr, sonst läuft sie aus. */
if ($user->isRenewalAccount()) {
// Acount ist noch nicht verlängert / bezahlt
if ($user->payment_account) {
@@ -60,10 +54,6 @@ class MembershipController extends Controller
$userHistoryPaymentOrder = UserHistory::whereUserId($user->id)->whereAction('payment_order')->where('created_at', '>=', $payment_greaterThan)->get()->last();
}
}
- if ($user->isActiveAccount() && ! $user->isActiveShop()) {
- $payment_greaterThan = Carbon::parse($user->payment_account)->modify('-'.(config('mivita.renewal_days') + 1).' days');
- $userHistoryUpgradeOrder = UserHistory::whereUserId($user->id)->whereAction('upgrade_order')->where('created_at', '>=', $payment_greaterThan)->get()->last();
- }
$userHistoryDeleteMembership = UserHistory::whereUserId($user->id)->whereAction('delete_membership')->whereStatus(50)->get()->last();
$shipping_country_id = $this->checkShoppingCountry($user);
@@ -75,11 +65,8 @@ class MembershipController extends Controller
$data = [
'user' => $user,
- 'products' => Product::where('active', true)->whereJsonContains('show_on', ['7', '8'])->orderBy('pos', 'ASC')->get(),
- 'upgrade' => Product::where('active', true)->whereJsonContains('show_on', '8')->where('identifier', 'upgrade')->get(),
- 'diff_months' => $diff_months,
+ 'products' => $this->renewalProducts(),
'userHistoryPaymentOrder' => $userHistoryPaymentOrder,
- 'userHistoryUpgradeOrder' => $userHistoryUpgradeOrder,
'userHistoryDeleteMembership' => $userHistoryDeleteMembership,
'yard_info' => UserService::getYardInfo(),
'userShoppingOrders' => $userShoppingOrders,
@@ -88,6 +75,34 @@ class MembershipController extends Controller
return view('user.membership.index', $data);
}
+ /**
+ * Produkte, die bei der Mitgliedschafts-Verlängerung zur Auswahl stehen.
+ *
+ * Die Registrierung (show_on 7) nutzt ein eigenes Produkt mit Registrierungs-Text.
+ * Für die Verlängerung gibt es eine Kopie mit passendem Inhalt (identifier show_renewal).
+ * Solange keine angelegt ist, greift das bisherige Mitgliedschafts-Produkt.
+ *
+ * @return Collection
Damit bleiben Dir erhalten:
' + .'Die Verlängerung schließt direkt an Deine aktuelle Laufzeit an und wird aktiv, sobald Deine Zahlung bei uns eingegangen ist. Eine automatische Verlängerung gibt es nicht.
' + .'Bitte beachte: Ohne Zahlung läuft Deine Mitgliedschaft aus und Dein Berater-Account wird pausiert. Es werden Dir dann keine Punkte und keine Provisionen mehr gutgeschrieben. Bereits erarbeitete, noch offene Provisionen zahlen wir Dir selbstverständlich im nächsten Zahlungslauf aus.
'; + + public function up(): void + { + if (Product::withTrashed()->where('identifier', self::RENEWAL_IDENTIFIER)->exists()) { + return; + } + + $membershipProduct = Product::where('identifier', 'show_order') + ->whereJsonContains('show_on', '7') + ->whereJsonContains('show_on', '8') + ->orderBy('pos', 'ASC') + ->first(); + + if (! $membershipProduct) { + return; + } + + $renewalProduct = $membershipProduct->replicate(); + $renewalProduct->identifier = self::RENEWAL_IDENTIFIER; + $renewalProduct->show_on = ['8']; // nur Mitgliedschaft, nicht Registrierung + $renewalProduct->slug = self::RENEWAL_SLUG; + $renewalProduct->title = self::RENEWAL_TITLE; + $renewalProduct->copy = self::RENEWAL_COPY; + $renewalProduct->pos = (int) $membershipProduct->pos + 1; + $renewalProduct->active = true; + + // Eigene Artikelnummern: wp_number ist unique, ean darf sich nicht doppeln. + $renewalProduct->wp_number = null; + $renewalProduct->ean = null; + $renewalProduct->number = $membershipProduct->number ? $membershipProduct->number.'-V' : null; + + // Uebersetzungen des Registrierungs-Textes passen inhaltlich nicht. + foreach (['trans_title', 'trans_copy'] as $attribute) { + if (array_key_exists($attribute, $renewalProduct->getAttributes())) { + $renewalProduct->{$attribute} = null; + } + } + + $renewalProduct->save(); + + foreach ($membershipProduct->country_prices as $countryPrice) { + CountryPrice::create([ + 'product_id' => $renewalProduct->id, + 'country_id' => $countryPrice->country_id, + 'c_price' => $countryPrice->c_price, + 'c_tax' => $countryPrice->c_tax, + 'c_price_old' => $countryPrice->c_price_old, + 'c_currency' => $countryPrice->c_currency, + ]); + } + + foreach ($membershipProduct->product_categories as $productCategory) { + ProductCategory::create([ + 'product_id' => $renewalProduct->id, + 'category_id' => $productCategory->category_id, + ]); + } + } + + public function down(): void + { + Product::where('identifier', self::RENEWAL_IDENTIFIER) + ->get() + ->each(function (Product $product): void { + $product->active = false; + $product->save(); + $product->delete(); + }); + } +}; diff --git a/database/migrations/2026_08_25_130000_translate_membership_renewal_product.php b/database/migrations/2026_08_25_130000_translate_membership_renewal_product.php new file mode 100644 index 00000000..5020e0b2 --- /dev/null +++ b/database/migrations/2026_08_25_130000_translate_membership_renewal_product.php @@ -0,0 +1,105 @@ + + */ + private const RENEWAL_COPY = [ + 'en' => 'You are renewing your MIVITA membership for another 12 months.
' + .'This keeps in place:
' + .'The renewal follows on directly from your current term and becomes active as soon as we have received your payment. There is no automatic renewal.
' + .'Please note: Without payment your membership expires and your consultant account will be paused. From then on you will no longer be credited with any points or commissions. Commissions you have already earned and that are still outstanding will of course be paid out to you in the next payment run.
', + + 'es' => 'Amplías tu afiliación MIVITA por otros 12 meses.
' + .'Así conservas:
' + .'La ampliación enlaza directamente con tu plazo actual y se activa en cuanto recibamos tu pago. No existe una renovación automática.
' + .'Ten en cuenta: Sin pago tu afiliación caduca y tu cuenta de asesor queda en pausa. A partir de ese momento ya no se te abonarán puntos ni comisiones. Las comisiones ya generadas y aún pendientes se te pagarán, por supuesto, en la siguiente ejecución de pago.
', + + 'fr' => 'Vous renouvelez votre adhésion MIVITA pour 12 mois supplémentaires.
' + .'Vous conservez ainsi :
' + .'Le renouvellement fait directement suite à votre durée actuelle et devient actif dès que nous avons reçu votre paiement. Il n’y a pas de renouvellement automatique.
' + .'Veuillez noter : Sans paiement, votre adhésion expire et votre compte conseiller est mis en pause. Aucun point ni aucune commission ne vous seront alors plus crédités. Les commissions déjà acquises et encore ouvertes vous seront bien entendu versées lors du prochain cycle de paiement.
', + ]; + + public function up(): void + { + $renewalProduct = Product::where('identifier', self::RENEWAL_IDENTIFIER)->first(); + + if (! $renewalProduct) { + return; + } + + $membershipProduct = Product::where('identifier', 'show_order') + ->whereJsonContains('show_on', '7') + ->whereJsonContains('show_on', '8') + ->orderBy('pos', 'ASC') + ->first(); + + foreach (self::RENEWAL_COPY as $language => $copy) { + $name = $membershipProduct ? $membershipProduct->getTrans('name', $language) : ''; + + if ($name !== '') { + $this->addTranslation($renewalProduct, $language, 'name', $name); + } + + $this->addTranslation($renewalProduct, $language, 'copy', $copy); + } + } + + public function down(): void + { + $renewalProduct = Product::where('identifier', self::RENEWAL_IDENTIFIER)->first(); + + if (! $renewalProduct) { + return; + } + + TransProduct::where('product_id', $renewalProduct->id) + ->whereIn('language', array_keys(self::RENEWAL_COPY)) + ->whereIn('key', ['name', 'copy']) + ->delete(); + } + + /** + * Bestehende Übersetzungen bleiben unangetastet: sie können im Backend + * nachträglich angepasst worden sein. + */ + private function addTranslation(Product $product, string $language, string $key, string $value): void + { + TransProduct::firstOrCreate( + ['language' => $language, 'product_id' => $product->id, 'key' => $key], + ['value' => $value], + ); + } +}; diff --git a/resources/lang/de/membership.php b/resources/lang/de/membership.php index d65ba11f..212fabb8 100644 --- a/resources/lang/de/membership.php +++ b/resources/lang/de/membership.php @@ -1,60 +1,41 @@ '', - 'MIVITA_BUSINESS_Paket' => 'MIVITA BUSINESS Paket', - 'abo_copy_1' => 'Automatische Verlängerung dekativeren und SEPA Mandat zurückziehen.', - 'abo_copy_2' => 'Die nächste Buchung ist am: :date ', - 'abo_copy_3' => 'Hiermit bestätige ich, mein SEPA zu löschen und die automatische Verlängerung dekativeren.', - 'active' => 'aktiv', - 'active_package' => 'aktives Paket', - 'booked_package' => 'gebuchtes Paket', - 'change' => 'anpassen', - 'change_copy_1' => 'Du kannst Deine Mitglidschaft bis zur nächsten Vertragsverlängerung, am :date, ändern.', - 'change_copy_2' => 'Die restlichen Laufzeiten bleiben erhalten, erst mit der Verlängerung wird das geänderte Paket aktiv.', - 'consultant_membership' => 'Berater-Mitgliedschaft', - 'consultant_online_shop' => 'Berater-Online-Shop', - 'contract_renewal' => 'Vertragsverlängerung', - 'deactivate' => 'deaktivieren', - 'details' => 'Details', - 'downgrade_membership_is_not_possible' => 'Eine Rückstufung Deiner Berater-Mitgliedschaft ist nicht mehr möglich.', - 'end' => 'beenden', - 'end_button' => 'Mitgliedschaft hiermit beenden', - 'end_checkbox' => 'Ja, ich möchte die MIVITA Mitgliedschaft beenden, ich verzichte auf jeglichen Anspruch gegenüber MIVITA und möchte, dass mein Account gelöscht wird!', - 'end_copy_1' => 'Du möchtest kein MIVITA Berater mehr sein und Deine Mitgliedschaft beenden?', - 'end_copy_2' => 'Damit gibst du alle möglichen Provisionen, Vergünstigungen, Zugang zum Sales-Center und noch viel mehr auf. Mit absenden dieser Option erhalten wir ein Nachricht und kümmern uns um die Löschung Deines Accounts. Dieser Vorgang kann ein paar Tage dauern.', - 'end_copy_3' => 'Die Beendigung und Löschung Deiner MIVITA Mitgliedschaft ist beantragt.', - 'expired_on' => 'abgelaufen am', - 'home_copy_SEPA_32' => 'Da Du uns ein SEPA-Lastschrift-Mandat erteilt hast, brauchst Du nicht weiter aktiv zu werden. Entsprechend dieses Mandates werden wir den Rechnungsbetrag :price am :pay_date von Deinem Konto abbuchen.', - 'home_copy_SEPA_33' => 'Von Deinem SEPA-Lastschrift-Mandat, das du uns erteilt hast, konnten wir bisher den Rechnungsbetrag :price am :pay_date nicht abbuchen.', - 'home_copy_SEPA_36' => 'Leider war es uns nicht möglich, den fälligen Betrag per SEPA-Lastschrift-Mandat für die Mitgliedsgebühr von Deinem angegebenen Konto einzuziehen.', - 'home_copy_alert_31' => 'Deine Mitgliedschaft läuft zum :datetime aus', - 'home_copy_alert_35' => 'Deine Mitgliedschaft läuft heute aus!', - 'home_copy_alert_36' => 'Dein Mitgliedschaft ist vor :days Tagen am :datetime ausgelaufen!', - 'home_copy_alert_36_today' => 'Dein Mitgliedschaft ist heute am :datetime ausgelaufen!', - 'home_copy_last_31' => 'Es bleiben Dir jetzt noch entspannte :days Tage Zeit, Deine Mitgliedschaft zu verlängern. Solltest Du allerdings die Frist verstreichen lassen, wird Dein Account solange automatisch pausiert bis Du Deine Mitgliedschaft erneuerst.', - 'home_copy_last_33' => 'Es bleiben Dir jetzt noch :days Tage Zeit, Deine Mitgliedschaft zu verlängern. Solltest Du allerdings die Frist verstreichen lassen, wird Dein Account solange automatisch pausiert bis Du Deine Mitgliedschaft erneuerst.', - 'home_copy_last_34' => 'huiii... jetzt wird es aber Zeit! Deine Mitgliedschaft läuft bereits in :days Tagen aus, und zwar exakt am :datetime. Solltest Du allerdings die Frist verstreichen lassen, wird Dein Account solange automatisch pausiert bis Du Deine Mitgliedschaft erneuerst.', - 'home_copy_last_35' => 'huiii... jetzt wird es aber Zeit! Deine Mitgliedschaft läuft bereits heute aus, und zwar exakt am :datetime. Solltest Du allerdings die Frist verstreichen lassen, wird Dein Account solange automatisch pausiert bis Du Deine Mitgliedschaft erneuerst.', - 'home_copy_last_36' => 'wie angekündigt, haben wir Deinen Berater-Account pausiert, da Du Deine Mitgliedschaft nicht rechtzeitig verlängert hast. Wenn Du wieder von den Vorteilen und Features bei MIVITA profitieren möchtest, kannst Du Deinen Account jederzeit reaktivieren.', - 'home_hl' => 'Mitgliedschaft / Jahresbeitrag', - 'inactive' => 'inaktiv', - 'is_no_longer_possible_to_change_package' => 'Eine Änderung Deines Berater-Paketes ist nicht mehr möglich.', - 'membership' => 'Mitgliedschaft', - 'membership_was_renewed' => 'Dein Vertrag wurde am :date verlängert. ', - 'open_payment_options' => 'Zahlungsoptionen öffnen', - 'payment_copy_1' => 'Alternativ hast Du die Möglichkeit jetzt direkt Deine Mitgliedschaft mit anderen Zahlungsmöglichkeiten zu bezahlen.', - 'payment_copy_2' => 'Ist die Mitgliedschaft vor dem :date bezahlt, wird das SEPA Mandart nicht ausgeführt!', - 'payment_has_been_made' => 'Eine Zahlung wurde ausgeführt.', - 'renewal_is_active_membership_fee_automatic' => ' Deine automatische Verlängerung ist aktiv, wir werden am :date Deine Mitgliedschaftsgebühr automatisch per SEPA Mandat einziehen.', - 'status' => 'Status', - 'until' => 'bis zum', - 'upgrade' => 'Upgrade', - 'upgrade_copy_1' => 'Erweitere jetzt Deine Mitglidschaft auf MIVITA BUSINESS Paket!', - 'upgrade_copy_2' => 'Berechnet werden die restlichen Monate bis zur Berater-Mitgliedschaft Verlängerung. Danach wird jährlich der MIVITA BUSINESS Paketpreis berechnet.', - 'upgrade_package_and_proceed_payment' => 'Du hast die Möglichkeit Dein Paket zu upgraden, wähle einfach das erweiterte Paket aus und gehe weiter zur Zahlung.', - 'we_do_not_collect_membership_fee' => 'Wir konnten am :date Deine Mitgliedschaftsgebühr nicht automatisch per SEPA Mandat einziehen.', - 'your_booked_package' => 'Dein gebuchtes Paket', - 'info_contract_renewal' => 'Dein Vertrag wird :days Tage vor Ablauf Deiner Berater-Mitgliedschaft automatisch verlängert. Nach der Vertragsverlängerung ist eine Änderung des Berater-Pakets nicht mehr möglich und du musst die Zahlung für Deine Mitgliedschaft vornehmen.', - 'alert_contract_renewal' => 'Um Deine Berater-Mitgliedschaft zu verlängern, führe bitte die Zahlung für Dein gebuchtes MIVITA-Paket durch.' -); +return [ + '' => '', + 'active' => 'aktiv', + 'booked_package' => 'gebuchtes Paket', + 'consultant_membership' => 'Berater-Mitgliedschaft', + 'consultant_online_shop' => 'Berater-Online-Shop', + 'details' => 'Details', + 'end' => 'beenden', + 'end_button' => 'Mitgliedschaft hiermit beenden', + 'end_checkbox' => 'Ja, ich möchte die MIVITA Mitgliedschaft beenden, ich verzichte auf jeglichen Anspruch gegenüber MIVITA und möchte, dass mein Account gelöscht wird!', + 'end_copy_1' => 'Du möchtest kein MIVITA Berater mehr sein und Deine Mitgliedschaft beenden?', + 'end_copy_2' => 'Damit gibst du alle möglichen Provisionen, Vergünstigungen, Zugang zum Sales-Center und noch viel mehr auf. Mit absenden dieser Option erhalten wir ein Nachricht und kümmern uns um die Löschung Deines Accounts. Dieser Vorgang kann ein paar Tage dauern.', + 'end_copy_3' => 'Die Beendigung und Löschung Deiner MIVITA Mitgliedschaft ist beantragt.', + 'expired_on' => 'abgelaufen am', + 'home_copy_alert_31' => 'Deine Mitgliedschaft läuft zum :datetime aus', + 'home_copy_alert_35' => 'Deine Mitgliedschaft läuft heute aus!', + 'home_copy_alert_36' => 'Dein Mitgliedschaft ist vor :days Tagen am :datetime ausgelaufen!', + 'home_copy_alert_36_today' => 'Dein Mitgliedschaft ist heute am :datetime ausgelaufen!', + 'home_copy_last_31' => 'Es bleiben Dir jetzt noch entspannte :days Tage Zeit, Deine Mitgliedschaft zu verlängern. Solltest Du allerdings die Frist verstreichen lassen, wird Dein Account solange automatisch pausiert bis Du Deine Mitgliedschaft erneuerst.', + 'home_copy_last_33' => 'Es bleiben Dir jetzt noch :days Tage Zeit, Deine Mitgliedschaft zu verlängern. Solltest Du allerdings die Frist verstreichen lassen, wird Dein Account solange automatisch pausiert bis Du Deine Mitgliedschaft erneuerst.', + 'home_copy_last_34' => 'huiii... jetzt wird es aber Zeit! Deine Mitgliedschaft läuft bereits in :days Tagen aus, und zwar exakt am :datetime. Solltest Du allerdings die Frist verstreichen lassen, wird Dein Account solange automatisch pausiert bis Du Deine Mitgliedschaft erneuerst.', + 'home_copy_last_35' => 'huiii... jetzt wird es aber Zeit! Deine Mitgliedschaft läuft bereits heute aus, und zwar exakt am :datetime. Solltest Du allerdings die Frist verstreichen lassen, wird Dein Account solange automatisch pausiert bis Du Deine Mitgliedschaft erneuerst.', + 'home_copy_last_36' => 'wie angekündigt, haben wir Deinen Berater-Account pausiert, da Du Deine Mitgliedschaft nicht rechtzeitig verlängert hast. Wenn Du wieder von den Vorteilen und Features bei MIVITA profitieren möchtest, kannst Du Deinen Account jederzeit reaktivieren.', + 'home_hl' => 'Mitgliedschaft / Jahresbeitrag', + 'inactive' => 'inaktiv', + 'membership' => 'Mitgliedschaft', + 'open_payment_options' => 'Zahlungsoptionen öffnen', + 'payment_has_been_made' => 'Eine Zahlung wurde ausgeführt.', + 'status' => 'Status', + 'until' => 'bis zum', + 'your_booked_package' => 'Dein gebuchtes Paket', + 'alert_contract_renewal' => 'Um Deine Mitgliedschaft um ein weiteres Jahr zu verlängern, führe bitte jetzt die Zahlung für Dein MIVITA-Paket durch.', + 'renewal_hl' => 'Mitgliedschaft verlängern', + 'renewal_info' => 'Deine Mitgliedschaft läuft am :datetime aus. Sobald Deine Zahlung bei uns eingegangen ist, verlängert sie sich um ein weiteres Jahr. Eine automatische Verlängerung gibt es nicht.', + 'renewal_expired_info' => 'Deine Mitgliedschaft ist am :datetime abgelaufen und Dein Berater-Account ist pausiert. Sobald Deine Zahlung bei uns eingegangen ist, schalten wir ihn sofort wieder für ein Jahr frei.', + 'renewal_consequence' => 'Ohne Zahlung läuft Deine Mitgliedschaft einfach aus: Es werden Dir dann keine Punkte und keine Provisionen mehr gutgeschrieben. Bereits erarbeitete, noch offene Provisionen zahlen wir Dir selbstverständlich im nächsten Zahlungslauf aus.', + 'active_info' => 'Deine Mitgliedschaft ist bis zum :datetime aktiv. Ab dem :renewal_date kannst Du sie hier für ein weiteres Jahr verlängern.', + 'renewal_possible_from' => 'Verlängerung möglich ab', +]; diff --git a/resources/lang/de/reminder.php b/resources/lang/de/reminder.php index aacef54e..cfdb46c8 100644 --- a/resources/lang/de/reminder.php +++ b/resources/lang/de/reminder.php @@ -1,14 +1,11 @@ 'MITGLIEDSCHAFT VERLÄNGERN', - 'button_32' => 'MITGLIEDSCHAFT VERWALTEN', - 'button_33' => 'MITGLIEDSCHAFT VERLÄNGERN', - 'button_34' => 'MITGLIEDSCHAFT VERLÄNGERN', - 'button_35' => 'MITGLIEDSCHAFT VERWALTEN', - 'button_36' => 'MITGLIEDSCHAFT VERWALTEN', - 'button_37' => 'MITGLIEDSCHAFT VERWALTEN', - 'copy_first_31' => 'wir wollten Dir jetzt schon mal rechtzeitig Bescheid geben, dass Deine Mitgliedschaft zum :datetime ausläuft. Daher solltest Du jetzt aktiv werden und rechtzeitig verlängern, damit Du weiterhin
+return [ + 'button_31' => 'MITGLIEDSCHAFT VERLÄNGERN', + 'button_33' => 'MITGLIEDSCHAFT VERLÄNGERN', + 'button_34' => 'MITGLIEDSCHAFT VERLÄNGERN', + 'button_35' => 'MITGLIEDSCHAFT VERWALTEN', + 'copy_first_31' => 'wir wollten Dir jetzt schon mal rechtzeitig Bescheid geben, dass Deine Mitgliedschaft zum :datetime ausläuft. Daher solltest Du jetzt aktiv werden und rechtzeitig verlängern, damit Du weiterhin
Aber alles gut - es bleiben Dir jetzt noch entspannte :days Tage Zeit, Deine Mitgliedschaft zu verlängern. Solltest Du allerdings die Frist verstreichen lassen, wird Dein Account solange automatisch pausiert bis Du Deine Mitgliedschaft erneuerst.
Wir senden Dir schon ganz bald eine weitere Erinnerung zu, aber dann hast Du es jetzt schon mal im Hinterkopf. Falls Du jetzt schon für den Anschluss um 1 Jahr verlängern möchtest, kannst Du das mit Klick auf den Button unten tun. Was weg ist, ist weg :) ...
', - 'copy_first_32' => 'wir wollten Dir jetzt schon mal rechtzeitig Bescheid geben, dass Deine Mitgliedschaft zum :datetime automatisch verlängert wird. Da Du uns ein SEPA-Lastschrift-Mandat erteilt hast, brauchst Du nicht weiter aktiv zu werden. Entsprechend dieses Mandates werden wir den Rechnungsbetrag :price am :pay_date von Deinem Konto abbuchen.
-Deine Mitgliedschaft verlängert sich im Anschluss um ein weiteres Jahr, damit Du weiterhin
-Soweit so gut. Solltest Du allerdings die Mitgliedschaft beenden bzw. erstmal pausieren wollen, dann kannst Du das in Deinem Mitgliederbereich selber einstellen. Folge dazu einfach dem grünen Button unten.
-Für den Fall, dass Du erstmal nicht verlängern möchtest, wird Dein Account solange pausiert bis Du Deine Mitgliedschaft erneuerst. Beachte aber bitte, dass alle Vorteile und Funktionen, vom vergünstigten Einkaufen bis hin zur Provisionsabrechnung ebenfalls pausieren.
', - 'copy_first_33' => 'hier nochmal eine kurze Erinnerung, dass Deine Mitgliedschaft zum :datetime ausläuft. Daher solltest Du jetzt aktiv werden und rechtzeitig verlängern, damit Du weiterhin
+ 'copy_first_33' => 'hier nochmal eine kurze Erinnerung, dass Deine Mitgliedschaft zum :datetime ausläuft. Daher solltest Du jetzt aktiv werden und rechtzeitig verlängern, damit Du weiterhin
Aber alles gut - es bleiben Dir jetzt noch entspannte :days Tage Zeit, Deine Mitgliedschaft zu verlängern. Solltest Du allerdings die Frist verstreichen lassen, wird Dein Account solange automatisch pausiert bis Du Deine Mitgliedschaft erneuerst.
Wir senden Dir schon ganz bald eine weitere Erinnerung zu, aber dann hast Du es jetzt schon mal im Hinterkopf. Falls Du jetzt schon für den Anschluss um 1 Jahr verlängern möchtest, kannst Du das mit Klick auf den Button unten tun. Was weg ist, ist weg :) ...
', - 'copy_first_34' => 'huiii... jetzt wird es aber Zeit! Deine Mitgliedschaft läuft bereits in :days Tagen aus, und zwar exakt am :datetime. Daher solltest Du jetzt aktiv werden und Deine Mitgliedschaft verlängern, da Dein Account sonst pausiert.
+ 'copy_first_34' => 'huiii... jetzt wird es aber Zeit! Deine Mitgliedschaft läuft bereits in :days Tagen aus, und zwar exakt am :datetime. Daher solltest Du jetzt aktiv werden und Deine Mitgliedschaft verlängern, da Dein Account sonst pausiert.
Wenn Du weiterhin
solltest Du jetzt schnell handeln und Deine Mitgliedschaft verlängern:
', - 'copy_first_35' => 'wie angekündigt, haben wir Deinen Berater-Account pausiert, da Du Deine Mitgliedschaft nicht rechtzeitig verlängert hast. Wenn Du wieder von den Vorteilen und Features bei MIVITA profitieren möchtest, kannst Du Deinen Account jederzeit reaktivieren.
+ 'copy_first_35' => 'wie angekündigt, haben wir Deinen Berater-Account pausiert, da Du Deine Mitgliedschaft nicht rechtzeitig verlängert hast. Wenn Du wieder von den Vorteilen und Features bei MIVITA profitieren möchtest, kannst Du Deinen Account jederzeit reaktivieren.
Klick auf den Button, falls Du Änderungen an Deiner Mitgliedschaft vornehmen möchtest:
', - 'copy_first_36' => 'leider war es uns nicht möglich, den fälligen Betrag für die Mitgliedsgebühr von Deinem angegebenen Konto einzuziehen.
-Wie angekündigt, haben wir daher heute Deinen Berater-Account pausiert, da Du Deine Mitgliedschaft damit nicht rechtzeitig verlängern konntest. Wenn Du wieder von den Vorteilen und Features bei MIVITA profitieren möchtest, kannst Du Deinen Account jederzeit auch über eine andere Zahlungsweise reaktivieren (z. B. Paypal, Kreditkarte, SOFORT Überweisung oder Vorauskasse).
-Klick dazu einfach auf folgenden Button und nimm entsprechende Einstellungen in Deinem Berater-Account vor:
', - 'copy_first_37' => 'wie angekündigt, haben wir heute gemäß Deines SEPA-Lastschriftmandates den Einzug von :price für ein weiteres Jahr der Mitgliedschaft bei MIVITA veranlasst. Dieser Rechnungsbetrag wird in den nächsten Tagen von Deinem Konto abgebucht. Bitte beachte, dass die Verlängerung erst nach Zahlungseingang aktiv ist.
-Falls Du in Zukunft Änderungen vornehmen möchtest, kannst Du alle Funktionen sowie die Mitgliedschaft in Deinem Berater-Account einstellen.
-Folge dazu einfach dem unten stehenden Button:
', - 'copy_last_31' => '', - 'copy_last_32' => '', - 'copy_last_33' => '', - 'copy_last_34' => '', - 'copy_last_35' => 'Hinweis:
Auch wenn Dein Account pausiert, werden Dir vergangene bzw. noch offene Provisionen selbstverständlich im nächsten Zahlungslauf ausgezahlt.Solltest Du Deinen Account vollständig löschen wollen, dann schreibe bitte eine Email an info@mivita.care. Unser Berater-Service wird sich dann umgehend darum kümmern.
Wichtig:
Läuft Deine Mitgliedschaft aus, wird Dein Berater-Account pausiert. Es werden Dir dann keine Punkte und keine Provisionen mehr gutgeschrieben. Bereits erarbeitete, noch offene Provisionen zahlen wir Dir selbstverständlich im nächsten Zahlungslauf aus.
Wichtig:
Läuft Deine Mitgliedschaft aus, wird Dein Berater-Account pausiert. Es werden Dir dann keine Punkte und keine Provisionen mehr gutgeschrieben. Bereits erarbeitete, noch offene Provisionen zahlen wir Dir selbstverständlich im nächsten Zahlungslauf aus.
Wichtig:
Läuft Deine Mitgliedschaft aus, wird Dein Berater-Account pausiert. Es werden Dir dann keine Punkte und keine Provisionen mehr gutgeschrieben. Bereits erarbeitete, noch offene Provisionen zahlen wir Dir selbstverständlich im nächsten Zahlungslauf aus.
Hinweis:
Auch wenn Dein Account pausiert, werden Dir vergangene bzw. noch offene Provisionen selbstverständlich im nächsten Zahlungslauf ausgezahlt.Solltest Du Deinen Account vollständig löschen wollen, dann schreibe bitte eine Email an info@mivita.care. Unser Berater-Service wird sich dann umgehend darum kümmern.
Wir hoffen, Dich ganz bald wieder als aktives Mitglied der MIVITA Family begrüßen zu dürfen.
', - 'copy_last_36' => 'Hinweis:
Auch wenn Dein Account pausiert, werden Dir vergangene bzw. noch offene Provisionen selbstverständlich im nächsten Zahlungslauf ausgezahlt.Solltest Du Deinen Account vollständig löschen wollen, dann schreibe bitte eine Email an info@mivita.care. Unser Berater-Service wird sich dann umgehend darum kümmern.
Wir hoffen, Dich ganz bald wieder als aktives Mitglied der MIVITA Family begrüßen zu dürfen.
', - 'copy_last_37' => '', - 'subject' => 'Deine Mitgliedschaft bei mivita.care', -); + 'subject' => 'Deine Mitgliedschaft bei mivita.care', +]; diff --git a/resources/lang/en/membership.php b/resources/lang/en/membership.php index bd357ff8..0b3b4da9 100644 --- a/resources/lang/en/membership.php +++ b/resources/lang/en/membership.php @@ -1,23 +1,12 @@ 'MIVITA BUSINESS package', - 'abo_copy_1' => 'Decrease automatic extension and withdraw SEPA mandate.', - 'abo_copy_2' => 'The next booking is on: :date ', - 'abo_copy_3' => 'I hereby confirm that I will delete my SEPA and deactivate the automatic extension.', 'active' => 'active', - 'active_package' => 'active package', - 'alert_contract_renewal' => 'To extend your consultant membership, please complete the payment for your booked MIVITA package.', + 'alert_contract_renewal' => 'To extend your membership by another year, please complete the payment for your MIVITA package now.', 'booked_package' => 'booked package', - 'change' => 'adjust', - 'change_copy_1' => 'You can change your membership until the next contract extension, on :date.', - 'change_copy_2' => 'The remaining terms remain the same; the changed package only becomes active when it is extended.', 'consultant_membership' => 'Consultant Membership', 'consultant_online_shop' => 'consultant online shop', - 'contract_renewal' => 'contract extension', - 'deactivate' => 'deactivate', 'details' => 'details', - 'downgrade_membership_is_not_possible' => 'It is no longer possible to downgrade your advisor membership.', 'end' => 'finish', 'end_button' => 'terminate your membership here', 'end_checkbox' => 'Yes, I would like to terminate my MIVITA membership, I waive any claims against MIVITA and would like my account to be deleted!', @@ -25,9 +14,6 @@ return [ 'end_copy_2' => 'By doing so, you are giving up all sorts of commissions, perks, access to the sales center, and much more. By submitting this option we will receive a message and will take care of deleting your account. This process may take a few days.', 'end_copy_3' => 'The termination and deletion of your MIVITA membership has been requested.', 'expired_on' => 'expired on', - 'home_copy_SEPA_32' => 'Since you have given us a SEPA direct debit mandate, you do not need to take any further action. In accordance with this mandate, we will debit the invoice amount :price from your account on :pay_date.', - 'home_copy_SEPA_33' => 'We have not yet been able to debit the invoice amount :price on :pay_date from the SEPA direct debit mandate that you gave us.', - 'home_copy_SEPA_36' => 'Unfortunately, we were unable to collect the amount due for the membership fee from your specified account using a SEPA direct debit mandate.', 'home_copy_alert_31' => 'Your membership expires on :datetime', 'home_copy_alert_35' => 'Your membership expires today!', 'home_copy_alert_36' => 'Your membership expired :days days ago on :datetime!', @@ -39,22 +25,17 @@ return [ 'home_copy_last_36' => 'As announced, we have paused your advisor account because you did not renew your membership in time. If you would like to benefit from the advantages and features of MIVITA again, you can reactivate your account at any time.', 'home_hl' => 'membership / annual fee', 'inactive' => 'inactive', - 'info_contract_renewal' => 'Your contract will be automatically extended :days before your consultant membership expires. Once the contract has been extended, it is no longer possible to change the consultant package and you must make the payment for your membership.', - 'is_no_longer_possible_to_change_package' => 'It is no longer possible to change your advisor package.', 'membership' => 'membership', - 'membership_was_renewed' => 'Your contract was renewed on :date.', 'open_payment_options' => 'open payment options', - 'payment_copy_1' => 'Alternatively, you now have the option of paying for your membership directly using other payment options.', - 'payment_copy_2' => 'If the membership is paid before the :date, the SEPA mandate will not be executed!', 'payment_has_been_made' => 'A payment has been made.', - 'renewal_is_active_membership_fee_automatic' => 'Your automatic extension is active, we will automatically collect your membership fee via SEPA mandate on :date.', 'status' => 'status', 'until' => 'until', - 'upgrade' => 'upgrade', - 'upgrade_copy_1' => 'Expand your membership to the MIVITA BUSINESS package now!', - 'upgrade_copy_2' => 'The remaining months until the consultant membership extension are calculated. The MIVITA BUSINESS package price will then be calculated annually.', - 'upgrade_package_and_proceed_payment' => 'You have the option to upgrade your package, simply select the upgraded package and proceed to payment.', - 'we_do_not_collect_membership_fee' => 'We were unable to automatically collect your membership fee via SEPA mandate on :date.', 'your_booked_package' => 'your booked package', '' => '', + 'renewal_hl' => 'Extend membership', + 'renewal_info' => 'Your membership expires on :datetime. As soon as we have received your payment, it will be extended by another year. There is no automatic extension.', + 'renewal_expired_info' => 'Your membership expired on :datetime and your consultant account is paused. As soon as we have received your payment, we will reactivate it for another year straight away.', + 'renewal_consequence' => 'Without payment your membership simply expires: from then on you will no longer be credited with any points or commissions. Commissions you have already earned and that are still outstanding will of course be paid out to you in the next payment run.', + 'active_info' => 'Your membership is active until :datetime. From :renewal_date you can extend it here for another year.', + 'renewal_possible_from' => 'Extension possible from', ]; diff --git a/resources/lang/en/reminder.php b/resources/lang/en/reminder.php index 69472adb..71337c04 100644 --- a/resources/lang/en/reminder.php +++ b/resources/lang/en/reminder.php @@ -2,25 +2,16 @@ return [ 'button_31' => 'RENEW MEMBERSHIP', - 'button_32' => 'MANAGE MEMBERSHIP', 'button_33' => 'RENEW MEMBERSHIP', 'button_34' => 'RENEW MEMBERSHIP', 'button_35' => 'MANAGE MEMBERSHIP', - 'button_36' => 'MANAGE MEMBERSHIP', - 'button_37' => 'MANAGE MEMBERSHIP', 'copy_first_31' => 'We wanted to let you know in good time that your membership will expire at :datetime. Therefore, you should take action now and extend it in good time so that you can continue to
But all is well - you still have a few relaxing :days days left to extend your membership. However, if you let the deadline pass, your account will be automatically paused until you renew your membership.
We\'ll send you another reminder very soon, but you\'ll have it in the back of your mind for now. If you would like to extend your connection by 1 year now, you can do so by clicking on the button below. What\'s gone is gone :) ...
', - 'copy_first_32' => 'We wanted to let you know in good time that your membership will be automatically extended at :datetime. Since you have given us a SEPA direct debit mandate, you do not need to take any further action. In accordance with this mandate, we will debit the invoice amount :price from your account on :pay_date.
Your membership will then be extended for another year so that you can continue to use
So far so good. However, if you want to end your membership or take a break for the time being, you can do this yourself in your member area. Simply follow the green button below.
If you do not want to renew for the time being, your account will be paused until you renew your membership. Please note, however, that all benefits and functions, from discounted shopping to commission billing, are also paused.
', 'copy_first_33' => 'Here\'s a quick reminder that your membership expires at :datetime. Therefore, you should take action now and extend it in good time so that you can continue to
But all is well - you still have a few relaxing :days days left to extend your membership. However, if you let the deadline pass, your account will be automatically paused until you renew your membership.
We\'ll send you another reminder very soon, but you\'ll have it in the back of your mind for now. If you would like to extend your connection by 1 year now, you can do so by clicking on the button below. What\'s gone is gone :) ...
', 'copy_first_34' => 'huiii... now it\'s time! Your membership expires in :days days, exactly on :datetime. Therefore, you should take action now and extend your membership, otherwise your account will be paused.
If you continue to
you should act quickly now and extend your membership:
', 'copy_first_35' => 'As announced, we have paused your advisor account because you did not renew your membership on time. If you would like to benefit from the advantages and features of MIVITA again, you can reactivate your account at any time.
Click on the button if you would like to make changes to your membership:
', - 'copy_first_36' => 'Unfortunately, we were unable to collect the amount due for the membership fee from your specified account.
As announced, we have therefore paused your advisor account today because you are not extending your membership in time could. If you would like to benefit from the advantages and features of MIVITA again, you can reactivate your account at any time using another payment method (e.g. Paypal, credit card, SOFORT transfer or advance payment).
To do this, simply click on the following button and make the appropriate settings in your advisor account:
', - 'copy_first_37' => 'As announced, we have today arranged for :price to be collected for another year of MIVITA membership in accordance with your SEPA direct debit mandate. This invoice amount will be debited from your account in the next few days. Please note that the extension is only active after payment has been received.
If you would like to make changes in the future, you can discontinue all functions and membership in your advisor account.
Follow here simply click the button below:
', 'copy_last_35' => 'Note:
Even if your account is paused, past or outstanding commissions will of course be paid out to you in the next payment run. If you want to delete your account completely, please write an email to info @mivita.care. Our advisor service will then take care of this immediately.
We hope to welcome you again very soon as an active member of the MIVITA Family.
', - 'copy_last_36' => 'Note:
Even if your account is paused, past or still outstanding commissions will of course be paid out to you in the next payment run. If you want to delete your account completely, please write an email to info @mivita.care. Our advisor service will then take care of this immediately.
We hope to welcome you again very soon as an active member of the MIVITA Family.
', 'subject' => 'Your membership at mivita.care', - 'copy_last_31' => '', - 'copy_last_32' => '', - 'copy_last_33' => '', - 'copy_last_34' => '', - 'copy_last_37' => '', + 'copy_last_31' => 'Important:
If your membership expires, your consultant account will be paused. From then on you will no longer be credited with any points or commissions. Commissions you have already earned and that are still outstanding will of course be paid out to you in the next payment run.
Important:
If your membership expires, your consultant account will be paused. From then on you will no longer be credited with any points or commissions. Commissions you have already earned and that are still outstanding will of course be paid out to you in the next payment run.
Important:
If your membership expires, your consultant account will be paused. From then on you will no longer be credited with any points or commissions. Commissions you have already earned and that are still outstanding will of course be paid out to you in the next payment run.
Queríamos informarle a tiempo que su membresía caducará en :datetime. Por lo tanto, debes tomar medidas ahora y ampliarlo a su debido tiempo para que puedas seguir
Pero todo está bien: todavía te quedan algunos días relajantes para ampliar tu membresía. Sin embargo, si deja pasar la fecha límite, su cuenta se pausará automáticamente hasta que renueve su membresía.
Le enviaremos otro recordatorio muy pronto, pero lo tendrá en mente. por ahora. Si desea extender su conexión por 1 año ahora, puede hacerlo haciendo clic en el botón a continuación. Lo que se fue, se fue :) ...
', - 'copy_first_32' => 'Queríamos informarle a tiempo que su membresía se extenderá automáticamente a las :datetime. Dado que nos ha otorgado un mandato de domiciliación bancaria SEPA, no necesita realizar ninguna acción adicional. De acuerdo con este mandato, debitaremos el monto de la factura :price de su cuenta el :pay_date.
Su membresía se extenderá por otro año para que pueda continuar usándola
Si no desea renovar por el momento, su cuenta se pausará hasta que renueve su membresía. Sin embargo, tenga en cuenta que todos los beneficios y funciones, desde compras con descuento hasta facturación de comisiones, también están pausados.
', 'copy_first_33' => 'Aquí le recordamos rápidamente que su membresía vence en :datetime. Por lo tanto, debes tomar medidas ahora y ampliarlo a su debido tiempo para que puedas seguir
Pero todo está bien: todavía te quedan algunos días relajantes para ampliar tu membresía. Sin embargo, si deja pasar la fecha límite, su cuenta se pausará automáticamente hasta que renueve su membresía.
Le enviaremos otro recordatorio muy pronto, pero lo tendrá en mente. por ahora. Si desea extender su conexión por 1 año ahora, puede hacerlo haciendo clic en el botón a continuación. Lo que se fue, se fue :) ...
', 'copy_first_34' => 'huiii... ¡ahora es el momento! Su membresía vence en :days días, exactamente el :datetime. Por lo tanto, debe tomar medidas ahora y ampliar su membresía; de lo contrario, su cuenta se pausará.
Si continúa
debe actuar rápidamente ahora y ampliar su membresía:
', 'copy_first_35' => 'Como lo anunciamos, hemos pausado su cuenta de asesor porque no renovó su membresía a tiempo. Si deseas volver a beneficiarte de las ventajas y características de MIVITA, puedes reactivar tu cuenta en cualquier momento.
Haz clic en el botón si deseas realizar cambios en tu membresía:
', - 'copy_first_36' => 'Desafortunadamente, no pudimos cobrar el monto adeudado por la cuota de membresía de su cuenta especificada.
Como anunciamos, hoy hemos pausado su cuenta de asesor porque no va a extender su membresía a tiempo. . Si deseas volver a beneficiarte de las ventajas y características de MIVITA, puedes reactivar tu cuenta en cualquier momento utilizando otro método de pago (por ejemplo, Paypal, tarjeta de crédito, transferencia SOFORT o pago anticipado).
Para hacer Para ello, simplemente haga clic en el siguiente botón y realice las configuraciones apropiadas en su cuenta de asesor:
', - 'copy_first_37' => 'Como anunciamos, hoy hemos acordado que se cobre el precio por otro año de membresía en MIVITA de acuerdo con su mandato de débito directo SEPA. El importe de esta factura se debitará de su cuenta en los próximos días. Tenga en cuenta que la extensión solo está activa después de que se haya recibido el pago.
Si desea realizar cambios en el futuro, puede suspender todas las funciones y la membresía en su cuenta de asesor.
Sigue aquí simplemente haz clic en el botón de abajo:
', 'copy_last_35' => 'Nota:
Incluso si su cuenta está pausada, las comisiones pasadas o pendientes, por supuesto, se le pagarán en la siguiente ejecución de pago. Si desea eliminar su cuenta por completo, por favor escribe un correo electrónico a info@mivita.care. Nuestro servicio de asesoría se encargará de esto inmediatamente.
Esperamos darle la bienvenida nuevamente muy pronto como miembro activo de la Familia MIVITA.
', - 'copy_last_36' => 'Nota:
Incluso si su cuenta está pausada, las comisiones pasadas o pendientes, por supuesto, se le pagarán en la siguiente ejecución de pago. Si desea eliminar su cuenta por completo, por favor escribe un correo electrónico a info@mivita.care. Nuestro servicio de asesoría se encargará de esto inmediatamente.
Esperamos darle la bienvenida nuevamente muy pronto como miembro activo de la Familia MIVITA.
', 'subject' => 'Tu membresía en mivita.care', - 'copy_last_31' => '', - 'copy_last_32' => '', - 'copy_last_33' => '', - 'copy_last_34' => '', - 'copy_last_37' => '', + 'copy_last_31' => 'Importante:
Si tu afiliación caduca, tu cuenta de asesor quedará en pausa. A partir de ese momento ya no se te abonarán puntos ni comisiones. Las comisiones ya generadas y aún pendientes se te pagarán, por supuesto, en la siguiente ejecución de pago.
Importante:
Si tu afiliación caduca, tu cuenta de asesor quedará en pausa. A partir de ese momento ya no se te abonarán puntos ni comisiones. Las comisiones ya generadas y aún pendientes se te pagarán, por supuesto, en la siguiente ejecución de pago.
Importante:
Si tu afiliación caduca, tu cuenta de asesor quedará en pausa. A partir de ese momento ya no se te abonarán puntos ni comisiones. Las comisiones ya generadas y aún pendientes se te pagarán, por supuesto, en la siguiente ejecución de pago.
nous voulions vous informer à temps que votre adhésion expire le :datetime. Vous devriez donc agir maintenant et la renouveler à temps afin de continuer à
Pas d’inquiétude : il vous reste encore :days jours pour renouveler votre adhésion. Si vous laissez toutefois passer ce délai, votre compte sera automatiquement mis en pause jusqu’à ce que vous renouveliez votre adhésion.
Nous vous enverrons bientôt un autre rappel, mais vous l’avez déjà en tête. Si vous souhaitez prolonger dès maintenant pour une année supplémentaire, cliquez sur le bouton ci-dessous.
', - 'copy_first_32' => 'nous voulions vous informer à temps que votre adhésion sera automatiquement renouvelée le :datetime. Comme vous nous avez accordé un mandat de prélèvement SEPA, vous n’avez rien d’autre à faire. Conformément à ce mandat, nous prélèverons le montant de la facture :price le :pay_date sur votre compte.
-Votre adhésion sera ensuite prolongée d’une année supplémentaire afin que vous puissiez continuer à
-Si vous souhaitez toutefois mettre fin à l’adhésion ou la suspendre pour l’instant, vous pouvez le régler vous-même dans votre espace membre. Suivez simplement le bouton vert ci-dessous.
-Si vous ne souhaitez pas renouveler pour le moment, votre compte sera mis en pause jusqu’à ce que vous renouveliez votre adhésion. Veuillez noter que tous les avantages et fonctions, de l’achat à prix réduit jusqu’au décompte des commissions, seront également mis en pause.
', 'copy_first_33' => 'voici un bref rappel : votre adhésion expire le :datetime. Vous devriez donc agir maintenant et la renouveler à temps afin de continuer à
vous devriez agir rapidement et renouveler votre adhésion :
', 'copy_first_35' => 'comme annoncé, nous avons mis votre compte conseiller en pause car vous n’avez pas renouvelé votre adhésion à temps. Si vous souhaitez profiter à nouveau des avantages et fonctionnalités de MIVITA, vous pouvez réactiver votre compte à tout moment.
Cliquez sur le bouton si vous souhaitez modifier votre adhésion :
', - 'copy_first_36' => 'malheureusement, nous n’avons pas pu prélever le montant dû de la cotisation sur le compte indiqué.
-Comme annoncé, nous avons donc mis aujourd’hui votre compte conseiller en pause, car votre adhésion n’a pas pu être renouvelée à temps. Si vous souhaitez profiter à nouveau des avantages et fonctionnalités de MIVITA, vous pouvez réactiver votre compte à tout moment via un autre mode de paiement (p. ex. PayPal, carte de crédit, virement SOFORT ou paiement anticipé).
-Cliquez simplement sur le bouton suivant et effectuez les réglages correspondants dans votre compte conseiller :
', - 'copy_first_37' => 'comme annoncé, nous avons lancé aujourd’hui, conformément à votre mandat de prélèvement SEPA, le prélèvement de :price pour une année supplémentaire d’adhésion chez MIVITA. Ce montant sera débité de votre compte dans les prochains jours. Veuillez noter que le renouvellement ne devient actif qu’après réception du paiement.
-Si vous souhaitez effectuer des modifications à l’avenir, vous pouvez régler toutes les fonctions ainsi que l’adhésion dans votre compte conseiller.
-Suivez simplement le bouton ci-dessous :
', - 'copy_last_31' => '', - 'copy_last_32' => '', - 'copy_last_33' => '', - 'copy_last_34' => '', + 'copy_last_31' => 'Important :
Si votre adhésion expire, votre compte conseiller sera mis en pause. Aucun point ni aucune commission ne vous seront alors plus crédités. Les commissions déjà acquises et encore ouvertes vous seront bien entendu versées lors du prochain cycle de paiement.
Important :
Si votre adhésion expire, votre compte conseiller sera mis en pause. Aucun point ni aucune commission ne vous seront alors plus crédités. Les commissions déjà acquises et encore ouvertes vous seront bien entendu versées lors du prochain cycle de paiement.
Important :
Si votre adhésion expire, votre compte conseiller sera mis en pause. Aucun point ni aucune commission ne vous seront alors plus crédités. Les commissions déjà acquises et encore ouvertes vous seront bien entendu versées lors du prochain cycle de paiement.
Remarque :
Même si votre compte est mis en pause, les commissions passées ou encore ouvertes vous seront bien entendu versées lors du prochain cycle de paiement. Si vous souhaitez supprimer complètement votre compte, veuillez écrire un e-mail à info@mivita.care. Notre service conseiller s’en occupera rapidement.
Nous espérons vous revoir très bientôt comme membre actif de la famille MIVITA.
', - 'copy_last_36' => 'Remarque :
Même si votre compte est mis en pause, les commissions passées ou encore ouvertes vous seront bien entendu versées lors du prochain cycle de paiement. Si vous souhaitez supprimer complètement votre compte, veuillez écrire un e-mail à info@mivita.care. Notre service conseiller s’en occupera rapidement.
Nous espérons vous revoir très bientôt comme membre actif de la famille MIVITA.
', - 'copy_last_37' => '', 'subject' => 'Votre adhésion chez mivita.care', ]; diff --git a/resources/views/dashboard/_reminder.blade.php b/resources/views/dashboard/_reminder.blade.php index 18278967..0ba65357 100755 --- a/resources/views/dashboard/_reminder.blade.php +++ b/resources/views/dashboard/_reminder.blade.php @@ -17,45 +17,26 @@ @else{{__('membership.home_copy_last_36', ['days'=>$user->daysActiveAccount(), 'datetime'=>$user->getPaymentAccountDateFormat()])}}
@endif @elseif($user->daysActiveAccount() < config('mivita.remind_last_days') ) - {{-- 33 --}} + {{-- 34 --}}{{__('membership.home_copy_last_34', ['days'=>$user->daysActiveAccount(), 'datetime'=>$user->getPaymentAccountDateFormat()])}}
@elseif($user->daysActiveAccount() < config('mivita.remind_sec_days')) {{-- 33 --}}{{ __('membership.home_copy_SEPA_33', ['price'=> 'von '.$user->payment_order_product->getFormattedPrice().' EUR', 'pay_date'=>Carbon::parse($user->payment_account)->modify('- '.config('mivita.abo_booking_days').' days')->format('d.m.Y')]) }}
- @else -{{ __('membership.home_copy_SEPA_32', ['price'=> 'von '.$user->payment_order_product->getFormattedPrice().' EUR', 'pay_date'=>Carbon::parse($user->payment_account)->modify('- '.config('mivita.abo_booking_days').' days')->format('d.m.Y')]) }}
- @endif -{{__('membership.home_copy_last_33', ['days'=>$user->daysActiveAccount()])}}
@else - {{-- 32 / 31 --}} + {{-- 31 --}}{{__('membership.home_copy_last_31', ['days'=>$user->daysActiveAccount()])}}
@endif + + @if($user->isActiveAccount()) +{{ __('membership.renewal_consequence') }}
+ @endif{{__('membership.payment_copy_1')}}
- {!! __('membership.payment_copy_2', ['date'=> Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y')]) !!}
| - - | -
-
- @if(count($product->images))
-
-
-
- {{$product->getLang('name')}}- {!! $product->getLang('copy') !!} - |
- - {{ $product->getFormattedPriceWith(\App\Services\UserService::getTaxFree(), false, \App\Services\UserService::$user_country) }} € {{ __('payment.month') }} - @if(\App\Services\UserService::$user_country->currency) - {!! $product->getFormattedPriceCurrencyWith(\App\Services\UserService::getTaxFree(), false, \App\Services\UserService::$user_country) !!} - @endif - | -
| {{ __('payment.remaining_time') }}: {{$diff_months}} @if($diff_months==1) {{ __('payment.month') }} @else {{ __('payment.Monate') }} @endif | -{!! Util::formatNumber($diff_months * $product->getPriceWith(\App\Services\UserService::getTaxFree(), false, \App\Services\UserService::$user_country)) !!} EUR | -|
{{ __('membership.info_contract_renewal', ['days'=>config('mivita.renewal_days')]) }}
+ @if($user->isActiveAccount()) +{{ __('membership.renewal_info', ['datetime' => $user->getPaymentAccountDateFormat()]) }}
+ @else +{{ __('membership.renewal_expired_info', ['datetime' => $user->getPaymentAccountDateFormat()]) }}
+ @endif +{{ __('membership.renewal_consequence') }}
+ @if($userHistoryPaymentOrder && $userHistoryPaymentOrder->status > 2)
- {!! __('membership.we_do_not_collect_membership_fee', ['date'=>Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y')]) !!}
-
- @else
-
- {!! __('membership.renewal_is_active_membership_fee_automatic', ['date'=>Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y')]) !!}
-
- @endif
-
{{ __('membership.downgrade_membership_is_not_possible') }}
-{{ __('membership.upgrade_package_and_proceed_payment') }}
- @endif - @if($user->payment_order_product->identifier === 'show_order') -{{ __('membership.is_no_longer_possible_to_change_package') }}
- @endif + @else +{{ __('membership.upgrade_copy_2') }}
- @if($userHistoryUpgradeOrder && $userHistoryUpgradeOrder->status > 2) -{{__('membership.change_copy_2')}}
- @include('user.membership._change') +{{ __('membership.active_info', ['datetime' => $user->getPaymentAccountDateFormat(), 'renewal_date' => $user->nextRenewalAccount()]) }}
+{{ __('membership.renewal_consequence') }}
{{__('membership.abo_copy_1')}}
- {!! __('membership.abo_copy_2', ['date'=> Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y')]) !!}
-
Du kannst Dich jetzt mit der Jahresgebühr registrieren.
', + 'identifier' => $identifier, + 'active' => true, + 'price' => 69.90, + 'tax' => 19, + 'weight' => 0, + 'points' => 0, + 'pos' => $pos, + 'is_membership_only' => 1, + 'action' => json_encode(['0', '1']), + 'show_on' => json_encode($showOn), + 'created_at' => $now, + 'updated_at' => $now, + ]); + + return Product::findOrFail($id); +} + +function runRenewalProductMigration(): void +{ + (require base_path('database/migrations/2026_08_25_120000_create_membership_renewal_product.php'))->up(); +} + +function renewalProductsOfController(): Collection +{ + $method = new ReflectionMethod(MembershipController::class, 'renewalProducts'); + $method->setAccessible(true); + + return collect($method->invoke(new MembershipController)); +} + +it('legt das Verlängerungs-Produkt als Kopie des Registrierungs-Produkts an', function () { + $registration = makeMembershipProduct('show_order', ['7', '8'], 'MIVITA BUSINESS Paket'); + + runRenewalProductMigration(); + + $renewal = Product::where('identifier', 'show_renewal')->firstOrFail(); + + expect($renewal->id)->not->toBe($registration->id) + ->and($renewal->name)->toBe($registration->name) + ->and((float) $renewal->price)->toBe((float) $registration->price) + ->and($renewal->action)->toBe($registration->action) + ->and((bool) $renewal->is_membership_only)->toBeTrue() + ->and($renewal->show_on)->toBe(['8']) + ->and($renewal->slug)->not->toBe($registration->slug); +}); + +it('spricht im Verlängerungs-Text von der Verlängerung statt von der Registrierung', function () { + makeMembershipProduct('show_order', ['7', '8'], 'MIVITA BUSINESS Paket'); + + runRenewalProductMigration(); + + $renewal = Product::where('identifier', 'show_renewal')->firstOrFail(); + + expect($renewal->copy)->toContain('verlängerst Deine MIVITA Mitgliedschaft') + ->and($renewal->copy)->not->toContain('registrieren'); +}); + +it('laesst das Registrierungs-Produkt unveraendert', function () { + $registration = makeMembershipProduct('show_order', ['7', '8'], 'MIVITA BUSINESS Paket'); + + runRenewalProductMigration(); + + expect($registration->fresh()->show_on)->toBe(['7', '8']) + ->and($registration->fresh()->identifier)->toBe('show_order'); +}); + +it('legt kein zweites Verlängerungs-Produkt an', function () { + makeMembershipProduct('show_order', ['7', '8'], 'MIVITA BUSINESS Paket'); + + runRenewalProductMigration(); + runRenewalProductMigration(); + + expect(Product::where('identifier', 'show_renewal')->count())->toBe(1); +}); + +it('zeigt bei der Verlängerung nur noch das Verlängerungs-Produkt', function () { + makeMembershipProduct('show_order', ['7', '8'], 'MIVITA BUSINESS Paket'); + runRenewalProductMigration(); + + $products = renewalProductsOfController(); + + expect($products)->toHaveCount(1) + ->and($products->first()->identifier)->toBe('show_renewal'); +}); + +it('faellt ohne Verlängerungs-Produkt auf das Mitgliedschafts-Produkt zurueck', function () { + makeMembershipProduct('show_order', ['7', '8'], 'MIVITA BUSINESS Paket'); + + $products = renewalProductsOfController(); + + expect($products)->toHaveCount(1) + ->and($products->first()->identifier)->toBe('show_order'); +}); + +it('ignoriert ein inaktives Verlängerungs-Produkt', function () { + makeMembershipProduct('show_order', ['7', '8'], 'MIVITA BUSINESS Paket'); + runRenewalProductMigration(); + Product::where('identifier', 'show_renewal')->update(['active' => false]); + + $products = renewalProductsOfController(); + + expect($products)->toHaveCount(1) + ->and($products->first()->identifier)->toBe('show_order'); +}); + +function runRenewalTranslationMigration(): void +{ + (require base_path('database/migrations/2026_08_25_130000_translate_membership_renewal_product.php'))->up(); +} + +function renewalCopyIn(string $locale): string +{ + app()->setLocale($locale); + + return Product::where('identifier', 'show_renewal')->firstOrFail()->getLang('copy'); +} + +it('uebersetzt die Verlängerungs-Beschreibung in alle Sprachen', function (string $locale, string $needle) { + makeMembershipProduct('show_order', ['7', '8'], 'MIVITA BUSINESS Paket'); + runRenewalProductMigration(); + runRenewalTranslationMigration(); + + expect(renewalCopyIn($locale))->toContain($needle) + ->and(renewalCopyIn($locale))->not->toContain('verlängerst Deine MIVITA Mitgliedschaft'); +})->with([ + 'en' => ['en', 'renewing your MIVITA membership'], + 'es' => ['es', 'Amplías tu afiliación MIVITA'], + 'fr' => ['fr', 'Vous renouvelez votre adhésion MIVITA'], +]); + +it('behaelt den deutschen Text als Standard', function () { + makeMembershipProduct('show_order', ['7', '8'], 'MIVITA BUSINESS Paket'); + runRenewalProductMigration(); + runRenewalTranslationMigration(); + + expect(renewalCopyIn('de'))->toContain('verlängerst Deine MIVITA Mitgliedschaft'); +}); + +it('uebernimmt den uebersetzten Produktnamen aus dem Mitgliedschafts-Produkt', function () { + $registration = makeMembershipProduct('show_order', ['7', '8'], 'MIVITA BUSINESS Paket'); + TransProduct::create(['language' => 'en', 'product_id' => $registration->id, 'key' => 'name', 'value' => 'MIVITA BUSINESS package']); + + runRenewalProductMigration(); + runRenewalTranslationMigration(); + + app()->setLocale('en'); + + expect(Product::where('identifier', 'show_renewal')->firstOrFail()->getLang('name'))->toBe('MIVITA BUSINESS package'); +}); + +it('ueberschreibt nachtraeglich angepasste Uebersetzungen nicht', function () { + makeMembershipProduct('show_order', ['7', '8'], 'MIVITA BUSINESS Paket'); + runRenewalProductMigration(); + + $renewal = Product::where('identifier', 'show_renewal')->firstOrFail(); + TransProduct::create(['language' => 'en', 'product_id' => $renewal->id, 'key' => 'copy', 'value' => 'Handmade
']); + + runRenewalTranslationMigration(); + runRenewalTranslationMigration(); + + expect(renewalCopyIn('en'))->toBe('Handmade
') + ->and(TransProduct::where('product_id', $renewal->id)->where('key', 'copy')->count())->toBe(3); +}); diff --git a/tests/Feature/MembershipViewTextsTest.php b/tests/Feature/MembershipViewTextsTest.php new file mode 100644 index 00000000..f43deee5 --- /dev/null +++ b/tests/Feature/MembershipViewTextsTest.php @@ -0,0 +1,58 @@ +&1', $output, $exitCode); + unlink($tmp); + + expect($exitCode)->toBe(0, implode("\n", $output)); +})->with($membershipViews); + +it('kennt jeden verwendeten Sprachschlüssel in allen Sprachen', function (string $view) { + preg_match_all( + "/__\('(membership|reminder)\.([a-zA-Z0-9_]+)'/", + file_get_contents(base_path($view)), + $matches, + PREG_SET_ORDER + ); + + expect($matches)->not->toBeEmpty(); + + foreach (['de', 'en', 'es', 'fr'] as $locale) { + foreach ($matches as [$_, $file, $key]) { + $translations = include base_path("resources/lang/$locale/$file.php"); + expect(array_key_exists($key, $translations)) + ->toBeTrue("$locale/$file.php fehlt '$key' (aus $view)"); + } + } +})->with(array_diff($membershipViews, ['resources/views/dashboard/_membership.blade.php'])); + +it('beschreibt nirgends mehr die abgeschaffte automatische Vertragsverlängerung', function (string $locale) { + $membership = include base_path("resources/lang/$locale/membership.php"); + + foreach (['info_contract_renewal', 'membership_was_renewed', 'contract_renewal', 'change_copy_1', 'change_copy_2'] as $obsolete) { + expect($membership)->not->toHaveKey($obsolete); + } + + expect($membership)->toHaveKeys(['renewal_hl', 'renewal_info', 'renewal_expired_info', 'renewal_consequence', 'active_info', 'renewal_possible_from']); +})->with(['de', 'en', 'es', 'fr']);