Puncte:1

Cum creez programatic o comandă fără a șterge un profil?

drapel eg

am urmărit Comenzi pentru a scrie următorul cod.

$comanda = \Drupal\commerce_order\Entity\Order::create([
  'type' => 'tip_comandă_personalizată',
  'state' => 'schiță',
  'mail' => '[email protected]',
  'uid' => 1,
  'ip_address' => '127.0.0.1',
  'order_number' => '6',
  'billing_profile' => $profil,
  'store_id' => $store->id(),
  'order_items' => [$order_item],
  'plasat' => ora(),
]);

$profil este un profil de utilizator.

Apoi schimb programatic starea comenzii la loc cu $comanda->getState()->applyTransitionById('locul');.

Comanda este plasată și totul arată bine, cu excepția faptului că agenda utilizatorului devine goală. Cred că ratez un pas.

Există vreo modalitate de a păstra agenda în timp ce plasați comanda?

Puncte:3
drapel it

Profilul nu este șters - devine doar „deținut” de către comandă. Acest lucru se întâmplă în Comanda::preSave() unde uid-ul profilului este setat la 0. Acest lucru asigură că un client nu va putea folosi interfața agendei de adrese pentru a edita un profil la care face referire o comandă.Pentru mai multe informații despre cum funcționează agenda din Commerce 2.x în ceea ce privește copierea profilului, consultați articolul mai:

https://www.centarro.io/blog/understanding-drupal-commerce-2x-address-book

Soluția este să creați singur o copie a profilului, să îi setați uid-ul la 0 și să faceți referire la acel profil din comanda dvs. în loc de cel original.

Aves2432 avatar
drapel eg
Mulțumesc, asta îmi rezolvă problema

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.