2017-06-16 1 views
-3

Wie wird das Kontrollkästchen "Newsletter" standardmäßig in PrestaShop 1.7 beim Checkout aktiviert?Wie wird das Kontrollkästchen "Newsletter" standardmäßig in PrestaShop 1.7 im Checkout-Prozess aktiviert?

enter image description here

Update: fand ich die Datei, in der die Form rendrered ist: \ Module \ ps_emailsubscription \ ps_emailsubscription.php

aber erstaunlich genug sind, gibt es keine Funktion definiert Attribute zu ändern.

public function hookAdditionalCustomerFormFields($params) 
{ 
    $label = $this->trans(
     'Sign up for our newsletter[1][2]%conditions%[/2]', 
     array(
      '[1]' => '<br>', 
      '[2]' => '<em>', 
      '%conditions%' => Configuration::get('NW_CONDITIONS', $this->context->language->id), 
      '[/2]' => '</em>', 
     ), 
     'Modules.Emailsubscription.Shop' 
    ); 

    return array(
     (new FormField()) 
      ->setName('newsletter') 
      ->setType('checkbox') 
      ->setLabel($label)); 
} 

Antwort

1

Die richtige Datei, die die Form Rendering ist:

/themes/[your-activated-theme]/templates/customer/_partials/customer_form.tpl

In der Zeile 32 Sie sehen diesen Code, die responsable ist die Eingabefelder des Formulars zu machen:

{block "form_fields"} 
    {foreach from=$formFields item="field"} 
    {block "form_field"} 
     {form_field field=$field} 
    {/block} 
    {/foreach} 
    {$hook_create_account_form nofilter} 
{/block} 

die neue Art Formularfelder zu erzeugen, ist die smarty-Funktion „{form_field}“ zu nennen, wie die Linie 35 Diese funciton ruft diese Datei, um die verschiedenen Eingabe des zu erstellen:

/themes/[your-activated-theme]/templates/_partials/form-fields.tpl

Also, meine schnellere Lösung (ich glaube, nicht ist die beste, aber funktioniert) ist direkt in dieser Datei zu ändern, um zu sagen, dass check die Checkbox-Eingabe, wenn es der Newsletter und Optin-Eingang ist und es in der Authentifizierungsseite ist:

Ändern Sie dies in Zeile 91 in Form-Dateien .tpl-Datei:

{if $field.value)} 

An:

{if $field.value || ($field.name == "newsletter" && $page.page_name == 'authentication') || ($field.name == "optin" && $page.page_name == 'authentication')} 

Ich hoffe, es hilft Ihnen.

0

für mich die vorherige Antwort nicht funktioniert hat, also habe ich nur das:

{if $field.value}checked="checked"{/if}

zu:

checked="checked"

Grüße, B

Verwandte Themen