本文整理汇总了PHP中WC_Order::get_id方法的典型用法代码示例。如果您正苦于以下问题:PHP WC_Order::get_id方法的具体用法?PHP WC_Order::get_id怎么用?PHP WC_Order::get_id使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WC_Order
的用法示例。
在下文中一共展示了WC_Order::get_id方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: set_coupon
/**
* Create or update an order coupon
*
* @since 2.2
* @param \WC_Order $order
* @param array $coupon item data
* @param string $action 'create' to add coupon or 'update' to update it
* @throws WC_API_Exception invalid data, server error
*/
protected function set_coupon($order, $coupon, $action)
{
// coupon amount must be positive float
if (isset($coupon['amount']) && floatval($coupon['amount']) < 0) {
throw new WC_API_Exception('woocommerce_invalid_coupon_total', __('Coupon discount total must be a positive amount', 'woocommerce'), 400);
}
if ('create' === $action) {
// coupon code is required
if (empty($coupon['code'])) {
throw new WC_API_Exception('woocommerce_invalid_coupon_coupon', __('Coupon code is required', 'woocommerce'), 400);
}
$item = new WC_Order_Item_Coupon(array('code' => $coupon['code'], 'discount' => isset($coupon['amount']) ? floatval($coupon['amount']) : 0, 'discount_tax' => 0, 'order_id' => $order->get_id()));
$coupon_id = $item->save();
if (!$coupon_id) {
throw new WC_API_Exception('woocommerce_cannot_create_order_coupon', __('Cannot create coupon, try again', 'woocommerce'), 500);
}
} else {
$item = new WC_Order_Item_Coupon($coupon['id']);
if (isset($coupon['code'])) {
$item->set_code($coupon['code']);
}
if (isset($coupon['amount'])) {
$item->set_discount(floatval($coupon['amount']));
}
$coupon_id = $item->save();
if (!$coupon_id) {
throw new WC_API_Exception('woocommerce_cannot_update_order_coupon', __('Cannot update coupon, try again', 'woocommerce'), 500);
}
}
}
示例2: get_hosted_payments_args
/**
* Hosted payment args.
*
* @param WC_Order $order
*
* @return array
*/
protected function get_hosted_payments_args($order)
{
$args = apply_filters('woocommerce_simplify_commerce_hosted_args', array('sc-key' => $this->public_key, 'amount' => $order->get_total() * 100, 'reference' => $order->get_id(), 'name' => esc_html(get_bloginfo('name', 'display')), 'description' => sprintf(__('Order #%s', 'woocommerce'), $order->get_order_number()), 'receipt' => 'false', 'color' => $this->modal_color, 'redirect-url' => WC()->api_request_url('WC_Gateway_Simplify_Commerce'), 'address' => $order->get_billing_address_1() . ' ' . $order->get_billing_address_2(), 'address-city' => $order->get_billing_city(), 'address-state' => $order->get_billing_state(), 'address-zip' => $order->get_billing_postcode(), 'address-country' => $order->get_billing_country(), 'operation' => 'create.token'), $order->get_id());
return $args;
}
示例3:
/**
* Test: get_id
*/
function test_get_id()
{
$object = new WC_Order();
$id = $object->save();
$this->assertEquals($id, $object->get_id());
}
示例4: set_item
/**
* Wrapper method to create/update order items.
* When updating, the item ID provided is checked to ensure it is associated
* with the order.
*
* @param WC_Order $order order
* @param string $item_type
* @param array $posted item provided in the request body
* @throws WC_REST_Exception If item ID is not associated with order
*/
protected function set_item($order, $item_type, $posted)
{
global $wpdb;
if (!empty($posted['id'])) {
$action = 'update';
} else {
$action = 'create';
}
$method = 'prepare_' . $item_type;
// Verify provided line item ID is associated with order.
if ('update' === $action) {
$result = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}woocommerce_order_items WHERE order_item_id = %d AND order_id = %d", absint($posted['id']), absint($order->get_id())));
if (is_null($result)) {
throw new WC_REST_Exception('woocommerce_rest_invalid_item_id', __('Order item ID provided is not associated with order.', 'woocommerce'), 400);
}
}
// Prepare item data
$item = $this->{$method}($posted, $action);
// Save or add to order
if ('create' === $action) {
$order->add_item($item);
} else {
$item->save();
}
}
示例5: wc_downloadable_file_permission
/**
* Grant downloadable product access to the file identified by $download_id.
*
* @param string $download_id file identifier
* @param int|WC_Product $product
* @param WC_Order $order the order
* @param int $qty purchased
* @return int|bool insert id or false on failure
*/
function wc_downloadable_file_permission($download_id, $product, $order, $qty = 1)
{
if (is_numeric($product)) {
$product = wc_get_product($product);
}
$download = new WC_Customer_Download();
$download->set_download_id($download_id);
$download->set_product_id($product->get_id());
$download->set_user_id($order->get_customer_id());
$download->set_order_id($order->get_id());
$download->set_user_email($order->get_billing_email());
$download->set_order_key($order->get_order_key());
$download->set_downloads_remaining(0 > $product->get_download_limit() ? '' : $product->get_download_limit() * $qty);
$download->set_access_granted(current_time('timestamp'));
$download->set_download_count(0);
$expiry = $product->get_download_expiry();
if ($expiry > 0) {
$order_completed_date = date_i18n("Y-m-d", $order->get_date_completed());
$download->set_access_expires(strtotime($order_completed_date . ' + ' . $expiry . ' DAY'));
}
return $download->save();
}
示例6: process_pre_order_release_payment
/**
* Process a pre-order payment when the pre-order is released.
*
* @param WC_Order $order
* @return WP_Error|null
*/
public function process_pre_order_release_payment($order)
{
try {
$order_items = $order->get_items();
$order_item = array_shift($order_items);
/* translators: 1: site name 2: product name 3: order number */
$pre_order_name = sprintf(__('%1$s - Pre-order for "%2$s" (Order #%3$s)', 'woocommerce'), esc_html(get_bloginfo('name', 'display')), $order_item['name'], $order->get_order_number());
$customer_id = get_post_meta($order->get_id(), '_simplify_customer_id', true);
if (!$customer_id) {
return new WP_Error('simplify_error', __('Customer not found.', 'woocommerce'));
}
// Charge the customer
$payment = Simplify_Payment::createPayment(array('amount' => $order->get_total() * 100, 'customer' => $customer_id, 'description' => trim(substr($pre_order_name, 0, 1024)), 'currency' => strtoupper(get_woocommerce_currency()), 'reference' => $order->get_id()));
if ('APPROVED' == $payment->paymentStatus) {
// Payment complete
$order->payment_complete($payment->id);
// Add order note
$order->add_order_note(sprintf(__('Simplify payment approved (ID: %1$s, Auth Code: %2$s)', 'woocommerce'), $payment->id, $payment->authCode));
} else {
return new WP_Error('simplify_payment_declined', __('Payment was declined - the customer need to try another card.', 'woocommerce'));
}
} catch (Exception $e) {
$order_note = sprintf(__('Simplify Transaction Failed (%s)', 'woocommerce'), $e->getMessage());
// Mark order as failed if not already set,
// otherwise, make sure we add the order note so we can detect when someone fails to check out multiple times
if ('failed' != $order->get_status()) {
$order->update_status('failed', $order_note);
} else {
$order->add_order_note($order_note);
}
}
}
示例7: wc_downloadable_file_permission
/**
* Grant downloadable product access to the file identified by $download_id.
*
* @access public
* @param string $download_id file identifier
* @param int $product_id product identifier
* @param WC_Order $order the order
* @param int $qty purchased
* @return int|bool insert id or false on failure
*/
function wc_downloadable_file_permission($download_id, $product_id, $order, $qty = 1)
{
global $wpdb;
$user_email = sanitize_email($order->get_billing_email());
$limit = trim(get_post_meta($product_id, '_download_limit', true));
$expiry = trim(get_post_meta($product_id, '_download_expiry', true));
$limit = empty($limit) ? '' : absint($limit) * $qty;
// Default value is NULL in the table schema
$expiry = empty($expiry) ? null : absint($expiry);
if ($expiry) {
$order_completed_date = date_i18n("Y-m-d", strtotime($order->completed_date));
$expiry = date_i18n("Y-m-d", strtotime($order_completed_date . ' + ' . $expiry . ' DAY'));
}
$data = apply_filters('woocommerce_downloadable_file_permission_data', array('download_id' => $download_id, 'product_id' => $product_id, 'user_id' => absint($order->get_user_id()), 'user_email' => $user_email, 'order_id' => $order->get_id(), 'order_key' => $order->get_order_key(), 'downloads_remaining' => $limit, 'access_granted' => current_time('mysql'), 'download_count' => 0));
$format = apply_filters('woocommerce_downloadable_file_permission_format', array('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%d'), $data);
if (!is_null($expiry)) {
$data['access_expires'] = $expiry;
$format[] = '%s';
}
// Downloadable product - give access to the customer
$result = $wpdb->insert($wpdb->prefix . 'woocommerce_downloadable_product_permissions', $data, $format);
do_action('woocommerce_grant_product_download_access', $data);
return $result ? $wpdb->insert_id : false;
}
示例8: read_items
/**
* Read order items of a specific type from the database for this order.
*
* @param WC_Order $order
* @param string $type
* @return array
*/
public function read_items($order, $type)
{
global $wpdb;
$get_items_sql = $wpdb->prepare("SELECT * FROM {$wpdb->prefix}woocommerce_order_items WHERE order_id = %d AND order_item_type = %s ORDER BY order_item_id;", $order->get_id(), $type);
$items = $wpdb->get_results($get_items_sql);
if (!empty($items)) {
$items = array_map(array('WC_Order_Factory', 'get_order_item'), array_combine(wp_list_pluck($items, 'order_item_id'), $items));
} else {
$items = array();
}
return $items;
}
示例9: save_paypal_meta_data
/**
* Save important data from the IPN to the order.
* @param WC_Order $order
* @param array $posted
*/
protected function save_paypal_meta_data($order, $posted)
{
if (!empty($posted['payer_email'])) {
update_post_meta($order->get_id(), 'Payer PayPal address', wc_clean($posted['payer_email']));
}
if (!empty($posted['first_name'])) {
update_post_meta($order->get_id(), 'Payer first name', wc_clean($posted['first_name']));
}
if (!empty($posted['last_name'])) {
update_post_meta($order->get_id(), 'Payer last name', wc_clean($posted['last_name']));
}
if (!empty($posted['payment_type'])) {
update_post_meta($order->get_id(), 'Payment type', wc_clean($posted['payment_type']));
}
if (!empty($posted['txn_id'])) {
update_post_meta($order->get_id(), '_transaction_id', wc_clean($posted['txn_id']));
}
if (!empty($posted['payment_status'])) {
update_post_meta($order->get_id(), '_paypal_status', wc_clean($posted['payment_status']));
}
}
示例10: email_instructions
/**
* Add content to the WC emails.
*
* @param WC_Order $order
* @param bool $sent_to_admin
* @param bool $plain_text
*/
public function email_instructions($order, $sent_to_admin, $plain_text = false)
{
if (!$sent_to_admin && 'bacs' === $order->get_payment_method() && $order->has_status('on-hold')) {
if ($this->instructions) {
echo wpautop(wptexturize($this->instructions)) . PHP_EOL;
}
$this->bank_details($order->get_id());
}
}
示例11: set_item
/**
* Wrapper method to create/update order items
*
* When updating, the item ID provided is checked to ensure it is associated
* with the order.
*
* @since 2.5.0
* @param WC_Order $order order
* @param string $item_type
* @param array $item item provided in the request body
* @param string $action either 'create' or 'update'
* @throws WC_CLI_Exception if item ID is not associated with order
*/
protected function set_item($order, $item_type, $item, $action)
{
global $wpdb;
$set_method = "set_{$item_type}";
// verify provided line item ID is associated with order
if ('update' === $action) {
$result = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}woocommerce_order_items WHERE order_item_id = %d AND order_id = %d", absint($item['id']), absint($order->get_id())));
if (is_null($result)) {
throw new WC_CLI_Exception('woocommerce_invalid_item_id', __('Order item ID provided is not associated with order', 'woocommerce'));
}
}
$this->{$set_method}($order, $item, $action);
}