- Get Started
- Guides
- Integrations
- References
- API Reference
- Basic Payment
- Forex
- Authentication
- Card Account
- Apple Pay
- Virtual Account
- Bank Account
- Token Account
- Customer
- Billing Address
- Merchant Billing Address
- Shipping Address
- Merchant Shipping Address
- Merchant
- Corporate
- Recipient
- Marketplace & Cart
- Airline
- Lodging
- Passenger
- Tokenization
- Recurring Migration
- 3D Secure
- Custom Parameters
- Async Payments
- Webhook notifications
- Job
- Risk
- Point of Sale
- Response Parameters
- Card On File
- Chargeback
- Result Codes
- Payment Methods
- Transaction Flows
- Regression Testing
- Data Retention Policy
- API Reference
- Support
COPYandPAY Customization
Quick links
You can customize the look and feel of the COPYandPAY payment form using the options below.
Default
Plain Style
Card Style
Custom Style
Click here for Mozilla's CSS reference guide
Style Options
The style of the payment form can be changed by setting the style option in the wpwlOption object before the payment widget is loaded. Valid options are:
- plain
- card
<script>
var wpwlOptions = {
style: "card"
}
</script>
<script async src="https://eu-test.oppwa.com/v1/paymentWidgets.js?checkoutId={checkoutId}"></script>
Card Number and CVV placeholder styles
In order to change the style of the placeholders inside card-number and cvv, please use the option iframeStyle, according to the example below:
<script>(Please note that only Web Safe fonts are supported)
var wpwlOptions = {
iframeStyles: {
'card-number-placeholder': {
'color': '#ff0000',
'font-size': '16px',
'font-family': 'monospace'
},
'cvv-placeholder': {
'color': '#0000ff',
'font-size': '16px',
'font-family': 'Arial'
}
}
}</script>
<script async src="https://eu-test.oppwa.com/v1/paymentWidgets.js?checkoutId={checkoutId}"></script>
Language Options
The language of the labels on the payment form can be changed by setting the locale option in the wpwlOption object before the payment widget is loaded.
<script>
var wpwlOptions = {
locale: "en"
}
</script>
<script async src="https://eu-test.oppwa.com/v1/paymentWidgets.js?checkoutId={checkoutId}"></script>
Brands Options
Payment options can be selected manually by entering the options in the <form>
tag.
<form action="" class="paymentWidgets" data-brands="VISA MASTER"></form>
Brand | Async / sync workflow |
---|
CSS Reference
As you have seen above, you can override any of the form's CSS simply by adding custom CSS in your stylesheet. For advanced style we recommend using a default style of plain, however custom stylesheets can be combined with any of the default style options.
All classes and container names are static. The names will not change in the future as this would invalidate existing integrations and customizations. If any change will be planned in the future, it will be communicated upfront allowing code migration and full support.
Base CSS Classes
For performance reasons, all elements have a base CSS class and individual CSS class, e.g. the credit card payment form container has a base .wpwl-container
class and an individual .wpwl-container-card
class to specify the card payment form container.
Container
.wpwl-container
wraps the payment form. Use this to apply, for example, margins between your page elements and the payment form.
<div class="wpwl-container">
...
</div>
Individual classes:
.wpwl-container-card
Form
.wpwl-form
styles all payment forms. Use this to change the look and feel of the payment form, including backgrounds or shadows.
<form class="wpwl-form wpwl-clearfix" action="https://eu-test.oppwa.com/v1/checkouts/{checkoutId}/payment" method="POST" target="cnpIframe" lang="en">
...
</form>
Individual classes:
.wpwl-form-card
Groups
.wpwl-group
wraps the label and the wrapper of the input element. Use this to style labels and inputs together, i.e. position or width.
<div class="wpwl-group">
<div class="wpwl-label">...</div>
<div class="wpwl-wrapper">...</div>
</div>
Individual classes:
.wpwl-group-brand
.wpwl-group-cardNumber
.wpwl-group-expiry
.wpwl-group-cardHolder
.wpwl-group-cvv
.wpwl-group-submit
styles the ""Pay now" button.
.wpwl-group-button
styles the buttons containing the brand
Labels
.wpwl-label
holds the label of an input element.
<div class="wpwl-label">
Card Number
</div>
Individual classes:
.wpwl-label-brand
.wpwl-label-cardNumber
.wpwl-label-expiry
.wpwl-label-cardHolder
.wpwl-label-cvv
Input and Select Wrappers
Input and select elements are wrapped in a div to gain more control over their styles, especially their width.
.wpwl-wrapper
holds an input or select element. Use this to set the width of the containing input or select element.
<div class="wpwl-wrapper">
...
</div>
Individual classes:
.wpwl-wrapper-brand
.wpwl-wrapper-cardNumber
.wpwl-wrapper-expiry
.wpwl-wrapper-cardHolder
.wpwl-wrapper-cvv
.wpwl-wrapper-submit
Input and Select Elements
All textual <input>
, <textarea>
, and <select>
elements have a base .wpwl-control
class and are set to width: 100%;
by default. The width of these elements should be set via .wpwl-wrapper
.
.wpwl-control
styles the borders, backgrounds or paddings of all <input>
and <select>
elements.
<input class="wpwl-control wpwl-control-cardNumber" name="card.number" autocomplete="off" type="tel" placeholder="Card Number">
<select class="wpwl-control wpwl-control-brand" name="paymentBrand"> <option value="MASTER">Mastercard</option> <option value="VISA">Visa</option> </select>
Individual classes:
.wpwl-control-brand
.wpwl-control-cardNumber
.wpwl-control-expiry
.wpwl-control-cardHolder
.wpwl-control-cvv
Buttons
.wpwl-button
styles the submit buttons.
<button type="submit" name="pay" class="wpwl-button wpwl-button-pay">Pay now</button>
Individual classes:
.wpwl-button-pay
styles the "Pay now" button.
.wpwl-button-brand
styles the buttons containing a brand.
Brands
.wpwl-brand
styles the brand icons.
<div class="wpwl-brand wpwl-brand-MASTER"></div>
Individual classes:
.wpwl-brand-card
styles the card brands
.wpwl-brand-BRAND
styles the specific brand.
Error Hints
.wpwl-has-error
adds a red background, border and color to the input element and a red color to the next .wpwl-hint
element.
<input autocomplete="off" type="tel" name="card.number" class="wpwl-control wpwl-control-cardNumber wpwl-has-error" placeholder="Card Number">
<div class="wpwl-hint wpwl-hint-cardNumberError">
Invalid card number or brand
</div>
Individual classes:
.wpwl-hint-cardNumberError
.wpwl-hint-expiryError
.wpwl-hint-cardHolderError
.wpwl-hint-cvvError
Helpers
.wpwl-clearfix
allows elements to contain floats without re-sorting. Assuming that .wpwl-label and .wpwl-wrapper are floated, .wpwl-group needs .wpwl-clearfix.
<div class="wpwl-group wpwl-clearfix">
<div class="wpwl-label">...</div>
<div class="wpwl-wrapper">...</div>
</div>
Credit Card HTML and CSS Classes
Here is an example HTML output of the credit card payment form:
<div id="card_220921339056" class="wpwl-container wpwl-container-card"> <form class="wpwl-form wpwl-form-card wpwl-clearfix" action="https://eu-test.oppwa.com/v1/checkouts/{checkoutId}/payment" method="POST" target="cnpIframe" lang="en"> <div class="wpwl-group wpwl-group-brand wpwl-clearfix"> <div class="wpwl-label wpwl-label-brand">Brand</div> <div class="wpwl-wrapper wpwl-wrapper-brand"> <select class="wpwl-control wpwl-control-brand" name="paymentBrand"> <option value="MASTER">Mastercard</option> <option value="VISA">Visa</option> </select> </div> <div class="wpwl-brand wpwl-brand-card wpwl-brand-MASTER"></div> </div> <div class="wpwl-group wpwl-group-cardNumber wpwl-clearfix"> <div class="wpwl-label wpwl-label-cardNumber">Card Number</div> <div class="wpwl-wrapper wpwl-wrapper-cardNumber"> <input autocomplete="off" type="tel" name="card.number" class="wpwl-control wpwl-control-cardNumber" placeholder="Card Number"> </div>a </div> <div class="wpwl-group wpwl-group-expiry wpwl-clearfix"> <div class="wpwl-label wpwl-label-expiry">Expiry Date</div> <div class="wpwl-wrapper wpwl-wrapper-expiry"> <input autocomplete="off" type="tel" name="card.expiry"b class="wpwl-control wpwl-control-expiry" placeholder="MM / YY"> </div> </div> <div class="wpwl-group wpwl-group-cardHolder wpwl-clearfix"> <div class="wpwl-label wpwl-label-cardHolder">Card holder</div> <div class="wpwl-wrapper wpwl-wrapper-cardHolder"> <input autocomplete="off" type="text" name="card.holder" class="wpwl-control wpwl-control-cardHolder" placeholder="Card holder"> </div> </div> <div class="wpwl-group wpwl-group-cvv wpwl-clearfix"> <div class="wpwl-label wpwl-label-cvv">CVV</div> <div class="wpwl-wrapper wpwl-wrapper-cvv"> <input autocomplete="off" type="tel" name="card.cvv" class="wpwl-control wpwl-control-cvv" placeholder="CVV"> </div> </div> <div class="wpwl-group wpwl-group-submit wpwl-clearfix"> <div class="wpwl-wrapper wpwl-wrapper-submit"> <button type="submit" name="pay" class="wpwl-button wpwl-button-pay">Pay now</button> </div> </div> <input type="hidden" name="shopperResultUrl" value="https://eu-test.oppwa.com/v1/checkouts/{checkoutId}/payment"> <input type="hidden" name="card.expiryMonth" value=""> <input type="hidden" name="card.expiryYear" value=""> </form> </div>