add( $item->linePrice()->amount ); $return .= <<quantity; $return .= <<

IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_review', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
  • IPSCONTENT; $pluralize = array( $totalItems ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'summary_items', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= <<
    IPSCONTENT; $return .= new \IPS\nexus\Money( $itemTotal, ( ( isset( \IPS\Request::i()->cookie['currency'] ) and \in_array( \IPS\Request::i()->cookie['currency'], \IPS\nexus\Money::currencies() ) ) ? \IPS\Request::i()->cookie['currency'] : \IPS\nexus\Customer::loggedIn()->defaultCurrency() ) ); $return .= <<
  • IPSCONTENT; foreach ( $summary['items'] as $item ): $return .= <<
    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'coupon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
    IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->linePrice(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= <<
    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'subtotal', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
    IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $summary['subtotal'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; foreach ( $summary['tax'] as $taxId => $tax ): $return .= <<
    IPSCONTENT; $val = "nexus_tax_{$taxId}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
    IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $tax['amount'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endforeach; $return .= <<
    IPSCONTENT; return $return; } function checkoutWrapper( $content, $checkoutStatus = NULL ) { $return = ''; $return .= <<
    IPSCONTENT; if ( $checkoutStatus && $checkoutStatus != 'continue' ): $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'transaction_title_success', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; elseif ( $checkoutStatus === 'waiting' ): $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'transaction_title_waiting', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; elseif ( $checkoutStatus === 'hold' ): $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'transaction_title_hold', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; elseif ( $checkoutStatus === 'pending' ): $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'transaction_title_pending', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; elseif ( $checkoutStatus === 'refused' ): $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'transaction_title_refused', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'checkout', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<isSecure() === TRUE ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'secure_page', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
    {$content}

    IPSCONTENT; return $return; } function confirmAndPay( $invoice, $summary, $form, $amountToPay, $couponForm, $recurrings, $overriddenRenewalTerms ) { $return = ''; $return .= <<
    IPSCONTENT; if ( $invoice->billaddress ): $return .= << IPSCONTENT; if ( $invoice->billaddress ): $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'billing_address', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<( IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'edit', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

    {$invoice->billaddress->toString('
    ')} IPSCONTENT; if ( isset( $invoice->billaddress->vat ) and $invoice->billaddress->vat ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cm_checkout_vat_number', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<billaddress->vat, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
    IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= <<member->email ): $return .= << IPSCONTENT; $sprintf = array($invoice->member->email); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'confirmation_sent_to', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= << IPSCONTENT; endif; $return .= <<

    IPSCONTENT; if ( \IPS\Widget\Request::i()->isSecure() === TRUE ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'secure_payment', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<language()->addToStack( htmlspecialchars( 'payment', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
    {$form}

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_review', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
      IPSCONTENT; foreach ( $summary['items'] as $item ): $return .= <<
      IPSCONTENT; if ( $image = $item->image() ): $return .= << IPSCONTENT; elseif ( $item::$icon ): $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; endif; $return .= <<
      IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->quantity, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << {$item->detailsForDisplay( 'checkout' )}
      IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->linePrice(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; if ( $item->quantity > 1 ): $return .= << IPSCONTENT; $sprintf = array($item->price); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'each_short', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= <<
      IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'coupon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
      IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->linePrice(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= <<
      IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'subtotal', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
      IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $summary['subtotal'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; foreach ( $summary['tax'] as $taxId => $tax ): $return .= <<
      IPSCONTENT; $val = "nexus_tax_{$taxId}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<( IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $tax['rate']*100, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
      IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $tax['amount'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endforeach; $return .= <<transactions( array( \IPS\nexus\Transaction::STATUS_PAID, \IPS\nexus\Transaction::STATUS_PART_REFUNDED, \IPS\nexus\Transaction::STATUS_HELD, \IPS\nexus\Transaction::STATUS_REVIEW, \IPS\nexus\Transaction::STATUS_GATEWAY_PENDING ) ) ): $return .= << $transaction ): $return .= <<
      IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'payment_received', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
      IPSCONTENT; $return .= new \IPS\nexus\Money( $transaction->amount->amount->subtract( $transaction->partial_refund->amount )->multiply( new \IPS\Math\Number('-1') ), $transaction->currency ); $return .= <<
      IPSCONTENT; endforeach; $return .= <<
      IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'total_to_pay', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
      IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $invoice->amountToPay( TRUE ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
      IPSCONTENT; else: $return .= <<
      IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'total', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
      IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $invoice->amountToPay(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
      IPSCONTENT; endif; $return .= << IPSCONTENT; if ( \count( $recurrings ) ): $return .= << IPSCONTENT; $sprintf = array($recurring['term']->getTermUnit()); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'renewals_header', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= <<
        IPSCONTENT; foreach ( $recurring['items'] as $rId => $item ): $return .= <<
        IPSCONTENT; if ( $image = $item->image() ): $return .= << IPSCONTENT; elseif ( $item::$icon ): $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; endif; $return .= <<
        IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->quantity, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << {$item->detailsForDisplay( 'checkout' )} IPSCONTENT; if ( isset( $recurring['showDueDate'] ) AND !$recurring['showDueDate'] ): $return .= << IPSCONTENT; $sprintf = array($item->expireDate->relative()); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'product_renews_on', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= << IPSCONTENT; endif; $return .= <<
        IPSCONTENT; if ( $item instanceof \IPS\nexus\Invoice\Item\Renewal ): $return .= <<linePrice(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<cost->amount->multiply( new \IPS\Math\Number( (string) $item->quantity ) ), $overriddenRenewalTerms[ $rId ]->cost->currency ); $return .= <<renewalTerm ): $return .= <<renewalTerm->cost->amount->multiply( new \IPS\Math\Number( (string) $item->quantity ) ), $item->renewalTerm->cost->currency ); $return .= << IPSCONTENT; if ( $item->quantity > 1 AND (!$item instanceof \IPS\nexus\Invoice\Item\Renewal) ): $return .= << IPSCONTENT; $sprintf = array($item->renewalTerm->cost); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'each_short', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= <<tax and $taxRate = $recurring['term']->tax->rate( $invoice->billaddress ) and $taxAmount = $recurring['term']->cost->amount->multiply( new \IPS\Math\Number( $taxRate ) ) ): $return .= <<
        IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $recurring['term']->tax->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<( IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $taxRate*100, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
        IPSCONTENT; $return .= new \IPS\nexus\Money( $taxAmount, $recurring['term']->cost->currency ); $return .= << IPSCONTENT; endif; $return .= <<
        IPSCONTENT; $sprintf = array($recurring['dueDate']->relative()); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'total_due_on', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= <<
        IPSCONTENT; $return .= new \IPS\nexus\Money( $recurring['term']->cost->amount->add( $taxAmount ), $recurring['term']->cost->currency ); $return .= <<
        IPSCONTENT; endif; $return .= << IPSCONTENT; endforeach; $return .= <<nexus_tac === 'button' ): $return .= << IPSCONTENT; $sprintf = array(\IPS\Settings::i()->nexus_tac_link); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'you_agree_to_tac', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= << IPSCONTENT; endif; $return .= <<
        IPSCONTENT; return $return; } function couponForm( $id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class='', $attributes=array(), $sidebar=NULL, $form=NULL ) { $return = ''; $return .= << $v ): $return .= << IPSCONTENT; foreach ( $hiddenValues as $k => $v ): $return .= << $_v ): $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; if ( $form->error ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $form->error, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'do_you_have_coupon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
        IPSCONTENT; foreach ( $elements as $collection ): $return .= << $input ): $return .= << {$input->html()} IPSCONTENT; if ( $input->error ): $return .= << IPSCONTENT; $val = "{$input->error}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endforeach; $return .= <<
        IPSCONTENT; return $return; } function customerInformation( $informationForm, $login, $loginError, $invoice ) { $return = ''; $return .= <<customer_submitted ) ): $return .= << IPSCONTENT; $usernamePasswordMethods = $login->usernamePasswordMethods(); $return .= <<buttonMethods(); $return .= <<

        IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'returning_member', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
        IPSCONTENT; if ( $loginError !== NULL ): $return .= <<getTemplate( "global", "core", 'global' )->message( $loginError, 'error' ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; if ( $usernamePasswordMethods ): $return .= <<getTemplate( "system", "core" )->loginForm( $login ); $return .= << IPSCONTENT; foreach ( $buttonMethods as $method ): $return .= << {$method->button()}
        IPSCONTENT; endforeach; $return .= << IPSCONTENT; endif; $return .= <<

        IPSCONTENT; if ( \IPS\Login::registrationType() != 'disabled' ): $return .= <<

        IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'new_customers', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

        IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'new_customer_blurb', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; if ( \IPS\Login::registrationType() == 'redirect' ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'sign_up', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'continue_as_new_member', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= <<

        IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'sign_in_with_these', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

        IPSCONTENT; foreach ( $buttonMethods as $method ): $return .= << {$method->button()}
        IPSCONTENT; endforeach; $return .= <<

        IPSCONTENT; endif; $return .= <<

      IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'create_new_account', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << {$informationForm}

      IPSCONTENT; else: $return .= <<
      IPSCONTENT; if ( $loginError !== NULL ): $return .= <<getTemplate( "global", "core", 'global' )->message( $loginError, 'error' ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; if ( $usernamePasswordMethods ): $return .= <<getTemplate( "system", "core" )->loginForm( $login ); $return .= << IPSCONTENT; foreach ( $buttonMethods as $method ): $return .= << {$method->button()}
      IPSCONTENT; endforeach; $return .= << IPSCONTENT; endif; $return .= <<
      IPSCONTENT; endif; $return .= << IPSCONTENT; else: $return .= <<

      IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'billing_information', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << {$informationForm}

      IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "checkout", "nexus" )->checkoutOrderSummary( $invoice->summary() ); $return .= <<
      IPSCONTENT; endif; $return .= << $v ): $return .= << IPSCONTENT; foreach ( $hiddenValues as $k => $v ): $return .= << $_v ): $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= <<error ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $form->error, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; foreach ( $elements as $collection ): $return .= << $input ): $return .= <<
      IPSCONTENT; return $return; } function orderReview( $invoice ) { $return = ''; $return .= <<

      IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_review', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

      IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; if ( \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'nexus', 'clients' ) ) ): $return .= <<url()->setQueryString( array( 'do' => 'printout', 'key' => $invoice->guest_data['guestTransactionKey'] ) ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<url()->setQueryString( 'do', 'printout' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_invoice_print', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<
      IPSCONTENT; if ( $invoice->billaddress ): $return .= << IPSCONTENT; if ( $invoice->billaddress ): $return .= <<

      IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'billing_address', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
      {$invoice->billaddress->toString('
      ')}

      IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'payment_details', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "clients", "nexus" )->paymentLog( $invoice ); $return .= <<

      IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_review', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; $summary = $invoice->summary(); $return .= <<
        IPSCONTENT; foreach ( $summary['items'] as $item ): $return .= <<
        IPSCONTENT; if ( $image = $item->image() ): $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; endif; $return .= <<
        IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->quantity, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; if ( \count( $item->details ) ): $return .= << IPSCONTENT; foreach ( $item->details as $k => $v ): $return .= << IPSCONTENT; $val = "nexus_pfield_{$k}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; $return .= \IPS\nexus\Package\CustomField::load( $k )->displayValue( $v ); $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= <<

      IPSCONTENT; return $return; } function packageFields( $item ) { $return = ''; $return .= <<details ) ): $return .= << IPSCONTENT; foreach ( $item->details as $k => $v ): $return .= << IPSCONTENT; $val = "nexus_pfield_{$k}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; $return .= \IPS\nexus\Package\CustomField::load( $k )->displayValue( $v ); $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; endif; $return .= << $v ): $return .= << IPSCONTENT; foreach ( $hiddenValues as $k => $v ): $return .= << $_v ): $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= <<error ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $form->error, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= << $input ): $return .= <<
      IPSCONTENT; if ( $invoice->canSplitPayment() ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'split_payment', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; foreach ( $input->options['options'] as $k => $v ): $return .= << value == (string) $k or ( isset( $input->options['userSuppliedInput'] ) and !\in_array( $input->value, array_keys( $input->options['options'] ) ) and $k == $input->options['userSuppliedInput'] ) ): $return .= <<required === TRUE ): $return .= <<disabled === TRUE or ( \is_array( $input->disabled ) and \in_array( $k, $input->disabled ) ) ): $return .= <<options['toggles'][ $k ] ) and !empty( $input->options['toggles'][ $k ] ) ): $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; if ( $invoice->canSplitPayment() ): $return .= << IPSCONTENT; endif; $return .= <<
      IPSCONTENT; else: $return .= << {$input->rowHtml()}

    IPSCONTENT; endif; $return .= <<

    IPSCONTENT; endif; $return .= << IPSCONTENT; return $return; } function transactionFail( $transaction ) { $return = ''; $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_fail_blurb', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

    IPSCONTENT; if ( isset( $transaction->extra['publicNote'] ) ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $transaction->extra['publicNote'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; if ( \IPS\Member::loggedIn()->canUseContactUs() and !( \IPS\Dispatcher::i()->application->directory == 'core' and \IPS\Dispatcher::i()->module and \IPS\Dispatcher::i()->module->key == 'contact' ) ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'contact', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'try_another_payment', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

    IPSCONTENT; return $return; } function transactionGatewayPending( $transaction, $invoice=NULL ) { $return = ''; $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_thanks_blurb_no_email', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_processing_blurb', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_processing_blurb2', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; if ( \IPS\Member::loggedIn()->member_id ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'track_orders_in_billing', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<getTemplate( "checkout", "nexus" )->orderReview( $invoice ?: $transaction->invoice ); $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_thanks_blurb_no_email', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_held_blurb', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_held_blurb2', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; if ( \IPS\Member::loggedIn()->member_id ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'track_orders_in_billing', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<extra['publicNote'] ) ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $transaction->extra['publicNote'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= <<getTemplate( "checkout", "nexus" )->orderReview( $transaction->invoice ); $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_thanks_blurb', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'manage_orders_in_billing', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "checkout", "nexus" )->orderReview( $transaction->invoice ); $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_split_payment_success', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_split_payment_success2', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; if ( $invoice = $transaction->invoice ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'return_to_checkout', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

    IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_thanks_blurb_no_email', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_wait_blurb', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_wait_blurb2', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

    {$transaction->method->manualPaymentInstructions( $transaction )}
    IPSCONTENT; if ( \IPS\Member::loggedIn()->member_id ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'track_orders_in_billing', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<getTemplate( "checkout", "nexus" )->orderReview( $transaction->invoice ); $return .= <<