本文整理汇总了PHP中Order::Member方法的典型用法代码示例。如果您正苦于以下问题:PHP Order::Member方法的具体用法?PHP Order::Member怎么用?PHP Order::Member使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Order
的用法示例。
在下文中一共展示了Order::Member方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: doStep
/**
* emailing admin and or running custom code to update newsletter status
* @param DataObject $order Order
* @return Boolean
**/
public function doStep(Order $order)
{
$billingAddress = $order->BillingAddress();
$member = $order->Member();
if ($member && $billingAddress) {
$recipient = Recipient::get()->filter(array("Email" => $billingAddress->Email))->first();
if (!$recipient) {
$recipient = Recipient::create();
$recipient->Email = $billingAddress->Email;
}
$recipient->FirstName = $billingAddress->FirstName;
$recipient->Surname = $billingAddress->Surname;
$recipient->write();
$mailingListToAdd = $member->MailingLists();
DB::query("DELETE FROM MailingList_Recipients WHERE RecipientID = " . $recipient->ID . ";");
if ($mailingListToAdd->count()) {
$recipientsMailingLists = $recipient->MailingLists();
$recipientsMailingLists->addMany($mailingListToAdd->map("ID", "ID")->toArray());
if ($this->SendMessageToAdmin) {
$member = $order->Member();
if ($member) {
if ($member->NewsletterSignup) {
$from = Order_Email::get_from_email();
$subject = _t("NewsletterSignup.NEWSLETTERREGISTRATIONUPDATE", "newsletter registration update");
$billingAddressOutput = "";
if ($billingAddress) {
$billingAddressOutput = $billingAddress->renderWith("Order_AddressBilling");
}
$body = "\n\t\t\t\t\t\t\t\t" . _t("NewsletterSignup.EMAIL", "Email") . ": <strong>" . $member->Email . "</strong>" . "<br /><br />" . _t("NewsletterSignup.SIGNUP", "Signed Up") . ": <strong>" . ($member->NewsletterSignup ? _t("NewsletterSignup.YES", "Yes") : _t("NewsletterSignup.NO", "No")) . "</strong>" . "<br /><br />" . $billingAddressOutput;
$email = new Email($from, $to = Order_Email::get_from_email(), $subject, $body);
$email->send();
//copy!
if ($this->SendCopyTo) {
$email = new Email($from, $to = $this->SendCopyTo, $subject, $body);
$email->send();
}
}
//this can be used to connect with third parties (e.g. )
}
}
}
$this->extend("updateNewsletterStatus", $member, $recipient);
}
return true;
}
示例2: getFormFields
public function getFormFields(Order $order)
{
if (Member::currentUser() || $order->Member()->exists()) {
return FieldList::create();
}
$content = $this->content ?: _t('LoginCheckoutComponent.ALREADY_HAVE_AN_ACCOUNT?', 'Already have an account? <a class="checkout--login-link" href="{{ link }}">Sign in here</a>');
$link = $this->link ?: singleton('Security')->Link('login');
return FieldList::create(FormMessageField::create('LoginMessage', str_replace('{{ link }}', $link, $content), $this->type));
}
示例3: Member
/**
* @param String $name
* @param Order $order
* @param Member $member
*/
function __construct($name, Order $order, Member $member = null)
{
if (!$member) {
$member = $order->Member();
}
if (!$member) {
$member = new Member();
}
$orderSteps = OrderStep::get();
$where = "\"HideStepFromCustomer\" = 0";
$currentStep = $order->CurrentStepVisibleToCustomer();
if ($member->IsShopAdmin()) {
$where = "";
$currentStep = $order->MyStep();
} else {
$currentStep = $order->CurrentStepVisibleToCustomer();
$orderSteps->filter(array("HideStepFromCustomer" => 0));
}
$future = false;
$html = "\r\n\t\t<div class=\"orderStepField\">\r\n\t\t\t<ol>";
if ($orderSteps->count()) {
foreach ($orderSteps as $orderStep) {
$description = "";
if ($member->IsShopAdmin()) {
if ($orderStep->Description) {
$description = " title=\"" . Convert::raw2att($orderStep->Description) . "\" ";
}
}
$class = "";
if ($orderStep->ID == $currentStep->ID) {
$future = true;
$class .= " current";
} elseif ($future) {
$class .= " todo";
} else {
$class .= " done";
}
$html .= '<li class="' . $class . '" ' . $description . '>' . $orderStep->Title . '</li>';
}
} else {
$html .= "no steps";
}
$html .= "</ol><div class=\"clear\"></div></div>";
if ($currentStep->Description) {
$html .= "\r\n\t\t\t\t<p>" . "<strong>" . $currentStep->Title . "</strong> " . _t("OrderStepField.STEP", "step") . ": " . "<i>" . $currentStep->Description . "</i>" . "</p>";
}
$this->content = $html;
Requirements::themedCSS("OrderStepField", 'ecommerce');
parent::__construct($name);
}
示例4: process_payment_form_and_return_next_step
/**
* Process payment form and return next step in the payment process.
* Steps taken are:
* 1. create new payment
* 2. save form into payment
* 3. return payment result
*
* @param Order $order - the order that is being paid
* @param Form $form - the form that is being submitted
* @param Array $data - Array of data that is submittted
* @return Boolean - if successful, this method will return TRUE
*/
public static function process_payment_form_and_return_next_step($order, $form, $data)
{
if (!$order) {
$form->sessionMessage(_t('EcommercePayment.NOORDER', 'Order not found.'), 'bad');
Director::redirectBack();
return false;
}
$paidBy = $order->Member();
if (!$paidBy) {
$paidBy = Member::currentUser();
}
$paymentClass = !empty($data['PaymentMethod']) ? $data['PaymentMethod'] : null;
$payment = class_exists($paymentClass) ? new $paymentClass() : null;
if (!($payment && $payment instanceof Payment)) {
$form->sessionMessage(_t('EcommercePayment.NOPAYMENTOPTION', 'No Payment option selected.'), 'bad');
Director::redirectBack();
return false;
}
// Save payment data from form and process payment
$form->saveInto($payment);
$payment->OrderID = $order->ID;
if (is_object($paidBy)) {
$payment->PaidByID = $paidBy->ID;
}
$payment->Amount = $order->TotalOutstandingAsMoneyObject();
$payment->write();
// Process payment, get the result back
$result = $payment->processPayment($data, $form);
if (!$result instanceof Payment_Result) {
return false;
} else {
if ($result->isProcessing()) {
//IMPORTANT!!!
// isProcessing(): Long payment process redirected to another website (PayPal, Worldpay)
//redirection is taken care of by payment processor
return $result->getValue();
} else {
//payment is done, redirect to either returntolink
//OR to the link of the order ....
if (isset($data["returntolink"])) {
Director::redirect($data["returntolink"]);
} else {
Director::redirect($order->Link());
}
}
return true;
}
}
示例5: sendStatusChange
/**
* Send a message to the client containing the latest
* note of {@link OrderStatusLog} and the current status.
*
* Used in {@link OrderReport}.
*
* @param string $note Optional note-content (instead of using the OrderStatusLog)
*/
public function sendStatusChange($title, $note = null)
{
if (!$note) {
$latestLog = OrderStatusLog::get()->filter("OrderID", $this->order->ID)->filter("SentToCustomer", 1)->first();
if ($latestLog) {
$note = $latestLog->Note;
$title = $latestLog->Title;
}
}
$member = $this->order->Member();
if (Config::inst()->get('OrderProcessor', 'receipt_email')) {
$adminEmail = Config::inst()->get('OrderProcessor', 'receipt_email');
} else {
$adminEmail = Email::config()->admin_email;
}
$e = Order_statusEmail::create();
$e->populateTemplate(array("Order" => $this->order, "Member" => $member, "Note" => $note));
$e->setFrom($adminEmail);
$e->setSubject($title);
$e->setTo($member->Email);
$e->send();
}
示例6: getConstraints
public function getConstraints(Order $order, $form = null)
{
$member = Member::currentUser() ?: $order->Member();
if (!$member || !$member->exists() || !$member->AddressBook()->exists()) {
return [];
}
$required = parent::getRequiredFields($order);
$constraints = [];
$namespace = $this->name();
foreach ($member->AddressBook() as $address) {
foreach ($required as $requirement) {
$constraints[$namespace . '_address-' . $address->ID . '[' . $requirement . ']'] = (new RequiredIfStrict($namespace . '_Use', '[value=address-' . $address->ID . ']:checked'))->setMessage(_t('AlternateAddressBookCheckoutComponent.' . $this->addresstype . '-REQUIRED_IF', 'This value is required when ' . strtolower($this->addresstype) . ' to: {address}', ['address' => $address->toString()]));
}
}
if ($this->allowNew) {
foreach ($required as $requirement) {
$constraints[$namespace . '_new[' . $requirement . ']'] = (new RequiredIfStrict($namespace . '_Use', '[value=new]:checked'))->setMessage(_t('AlternateAddressBookCheckoutComponent.' . $this->addresstype . '-REQUIRED_IF_NEW', 'This value is required when ' . strtolower($this->addresstype) . ' to a new address'));
}
}
return $constraints;
}
开发者ID:milkyway-multimedia,项目名称:ss-shop-checkout-extras,代码行数:21,代码来源:AlternateAddressBookCheckoutComponent.php