wpinv_insert_invoice()
Introduction | Parameters | Examples
Introduction
Create an invoice.
wpinv_insert_invoice( array $invoice_data = array(), bool $wp_error = false )
Parameters
- $invoice_data
-
(array) (Required) An array of elements to insert an invoice.
- status
(string) (Optional) The invoice status. Learn more about invoice statuses.
Default: ‘wpi-pending’ - user_id
(int) (Optional) The invoice user id.
Default: user ID of current logged user - post_date
(string) (Optional) The date-time in Y-m-d H:i:s format.
Default: Default is the current time. - cart_details
(array) (Required) The invoice items details.- id
(int) (Required) The item id. - quantity
(int) (Optional) The item quantity.
Default: 1 - custom_price
(float) (Optional) The item custom price. This price will overwrite the item price.
Default: empty - meta
(array) (Optional) The item meta. This stores custom values that to be used for this line item.
- id
- payment_details
(array) (Optional) The invoice payment details. Required for paid invoice.- gateway
(string) (Optional) The payment gateway name. Required for paid invoice.
Default: ‘manual’ - currency
(string) (Optional) The currency code (ISO 4217). ex: USD
Default: Store’s default currency. - transaction_id
(string) (Optional) The payment transaction id for paid invoices.
Default: Current invoice ID.
- gateway
- user_info
(array) (Optional) User billing address details.- first_name
(string) (Optional) Billing address first name.
Default: User’s saved first name. - last_name
(string) (Optional) Billing address last name or surname.
Default: User’s saved last name. - phone
(string) (Optional) Billing address phone number.
Default: User’s saved phone number. - address
(string) (Optional) Billing address street name/street no./block no etc.
Default: User’s saved phone address. - city
(string) (Optional) Billing address city.
Default: User’s saved city. - country
(string) (Optional) The country code (ISO2). ex: US
Default: User’s saved country or store’s default country. - state
(string) (Optional) The state name or state code.
Default: User’s saved state or store’s default state. - zip
(string) (Optional) Billing address postcode.
Default: User’s saved postcode. - company
(string) (Optional) User’s company name.
Default: empty - vat_number
(string) (Optional) User’s vat number.
Default: empty - discount
(string) (Optional) The coupon code to apply discount.
Default: empty
- first_name
- due_date
(string) (Optional) The invoice due date in Y-m-d. Only for invoice which has payment pending. - ip
(string) (Optional) IP address of the system from which invoice created/paid.
Default: IP address of the current system. - user_note
(string) (Optional) Short message or note for user. User notes will be included in user invoice email sent to users.
Default: empty - private_note
(string) (Optional) Short message or note for system use. Only admin can see private notes from backend invoice page.
Default: empty - parent
(int) (Optional) For renewal payment only. Parent invoice ID for which the renewal payment is being paid.
Default: 0
- status
- $wp_error
-
(bool) (Optional) Whether to return a WP_Error on failure.
Default: false
Return
(int|object|WP_Error) The value 0 or WP_Error on failure. The WPInv_Invoice object on success.
Examples
Example 1:
Create a invoice with simple data with status “pending payment”.
$data = array( 'status' => 'wpi-pending', 'user_id' => 1, 'cart_details' => array( array( 'id' => 2118 ), ) ); $invoice = wpinv_insert_invoice( $data, true );
View at GitHub: https://github.com/AyeCode/wpinv-example/blob/master/invoices/create-invoice-pending-payment-simple.php
Example 2:
Create a invoice with advance data with status “pending payment”.
$data = array( 'status' => 'wpi-pending', 'user_id' => 1, 'cart_details' => array( array( 'id' => 2118, 'quantity' => 1, 'custom_price' => '100.00', 'meta' => array( 'post_id' => 1239 ) ), ), 'user_info' => array( 'first_name' => 'GD', 'last_name' => 'User', 'phone' => '+91 1119348834', 'address' => 'Kankariya Lake', 'city' => 'Ahmedabad', 'country' => 'IN', 'state' => 'GJ', 'zip' => '380002', 'company' => '', 'vat_number' => '', 'discount' => '10P' ), 'due_date' => '2017-08-10', 'ip' => '1.39.51.23', 'user_note' => 'This is user note.', 'private_note' => 'This is a system note.', ); $invoice = wpinv_insert_invoice( $data, true );
View at GitHub: https://github.com/AyeCode/wpinv-example/blob/master/invoices/create-invoice-pending-payment-advanced
Example 3:
Create a invoice with simple data with status “paid payment”.
$data = array( 'status' => 'publish', 'user_id' => 1, 'post_date' => '2017-08-08 11:20:38', 'cart_details' => array( array( 'id' => 2118 ), ), 'payment_details' => array( 'gateway' => 'paypal', 'currency' => 'USD', 'transaction_id' => '9TK485797B9101342' ), ); $invoice = wpinv_insert_invoice( $data, true );
View at GitHub: https://github.com/AyeCode/wpinv-example/blob/master/invoices/create-invoice-paid-payment-simple.php
Example 4:
Create a invoice with advance data with status “paid payment”.
$data = array( 'status' => 'publish', 'user_id' => 1, 'post_date' => '2017-08-08 10:10:15', 'cart_details' => array( array( 'id' => 2118, 'quantity' => 1, 'custom_price' => '100.00', 'meta' => array( 'post_id' => 1239 ) ), ), 'payment_details' => array( 'gateway' => 'bank_transfer', 'currency' => 'USD', 'transaction_id' => 'BNK443545454557' ), 'user_info' => array( 'first_name' => 'GD', 'last_name' => 'User', 'phone' => '+91 1119348834', 'address' => 'Kankariya Lake', 'city' => 'Ahmedabad', 'country' => 'IN', 'state' => 'GJ', 'zip' => '380002', 'company' => '', 'vat_number' => '', 'discount' => '10P' ), 'ip' => '1.39.51.23', 'user_note' => 'This is user note.', 'private_note' => 'This is a system note.', 'parent' => 0 ); $invoice = wpinv_insert_invoice( $data, true );
View at GitHub: https://github.com/AyeCode/wpinv-example/blob/master/invoices/create-invoice-paid-payment-advanced.php