Wc_Tokens::replace_values( $value, $pieces, $recipe_id, $trigger_data, $user_id, $replace_args )
Contents
Parameters Parameters
- $value
-
(Required)
- $pieces
-
(Required)
- $recipe_id
-
(Required)
- $trigger_data
-
(Required)
- $user_id
-
(Required)
- $replace_args
-
(Required)
Return Return
(array|string|null)
Source Source
File: src/integrations/woocommerce/tokens/wc-tokens.php
public function replace_values( $value, $pieces, $recipe_id, $trigger_data, $user_id, $replace_args ) { $trigger_meta = $pieces[1]; $parse = $pieces[2]; $recipe_log_id = isset( $replace_args['recipe_log_id'] ) ? (int) $replace_args['recipe_log_id'] : Automator()->maybe_create_recipe_log_entry( $recipe_id, $user_id )['recipe_log_id']; if ( $trigger_data && $recipe_log_id ) { foreach ( $trigger_data as $trigger ) { if ( key_exists( $trigger_meta, $trigger['meta'] ) || ( isset( $trigger['meta']['code'] ) && $trigger_meta === $trigger['meta']['code'] ) ) { $trigger_id = $trigger['ID']; $trigger_log_id = $replace_args['trigger_log_id']; $order_id = Automator()->helpers->recipe->get_form_data_from_trigger_meta( 'order_id', $trigger_id, $trigger_log_id, $user_id ); if ( ! empty( $order_id ) ) { $order = wc_get_order( $order_id ); if ( $order && $order instanceof WC_Order ) { switch ( $parse ) { case 'order_id': $value = $order_id; break; case 'WCORDERSTATUS': $value = $order->get_status(); break; case 'WOOPRODUCT': $value_to_match = isset( $trigger['meta'][ $parse ] ) ? $trigger['meta'][ $parse ] : - 1; $value = $this->get_woo_product_names_from_items( $order, $value_to_match ); break; case 'WOOPRODUCT_ID': $value_to_match = isset( $trigger['meta'][ $parse ] ) ? $trigger['meta'][ $parse ] : - 1; $value = $this->get_woo_product_ids_from_items( $order, $value_to_match ); break; case 'WOOPRODUCT_URL': $value_to_match = isset( $trigger['meta'][ $parse ] ) ? $trigger['meta'][ $parse ] : - 1; $value = $this->get_woo_product_urls_from_items( $order, $value_to_match ); break; case 'WOORDERTOTAL': $value = wc_price( $order->get_total() ); break; case 'NUMBERCOND': $val = isset( $trigger['meta'][ $parse ] ) ? $trigger['meta'][ $parse ] : ''; switch ( $val ) { case '<': $value = esc_attr__( 'less than', 'uncanny-automator' ); break; case '>': $value = esc_attr__( 'greater than', 'uncanny-automator' ); break; case '=': $value = esc_attr__( 'equal to', 'uncanny-automator' ); break; case '!=': $value = esc_attr__( 'not equal to', 'uncanny-automator' ); break; case '>=': $value = esc_attr__( 'greater or equal to', 'uncanny-automator' ); break; case '<=': $value = esc_attr__( 'less or equal to', 'uncanny-automator' ); break; default: $value = ''; break; } break; case 'NUMTIMES': $value = absint( $replace_args['run_number'] ); break; case 'billing_first_name': $value = $order->get_billing_first_name(); break; case 'billing_last_name': $value = $order->get_billing_last_name(); break; case 'billing_company': $value = $order->get_billing_company(); break; case 'billing_country': $value = $order->get_billing_country(); break; case 'billing_address_1': $value = $order->get_billing_address_1(); break; case 'billing_address_2': $value = $order->get_billing_address_2(); break; case 'billing_city': $value = $order->get_billing_city(); break; case 'billing_state': $value = $order->get_billing_state(); break; case 'billing_postcode': $value = $order->get_billing_postcode(); break; case 'billing_phone': $value = $order->get_billing_phone(); break; case 'billing_email': $value = $order->get_billing_email(); break; case 'shipping_first_name': $value = $order->get_shipping_first_name(); break; case 'shipping_last_name': $value = $order->get_shipping_last_name(); break; case 'shipping_company': $value = $order->get_shipping_company(); break; case 'shipping_country': $value = $order->get_shipping_country(); break; case 'shipping_address_1': $value = $order->get_shipping_address_1(); break; case 'shipping_address_2': $value = $order->get_shipping_address_2(); break; case 'shipping_city': $value = $order->get_shipping_city(); break; case 'shipping_state': $value = $order->get_shipping_state(); break; case 'shipping_postcode': $value = $order->get_shipping_postcode(); break; case 'shipping_phone': $value = get_post_meta( $order_id, 'shipping_phone', true ); break; case 'order_comments': $comments = $order->get_customer_note(); if ( is_array( $comments ) && ! empty( $comments ) ) { $value = '<ul>'; $value .= '<li>' . implode( '</li><li>', $comments ) . '</li>'; $value .= '</ul>'; } else { $value = ! empty( $comments ) ? $comments : ''; } break; case 'order_status': $value = $order->get_status(); break; case 'order_total': $value = wc_price( $order->get_total() ); break; case 'order_total_raw': $value = $order->get_total(); break; case 'order_subtotal': $value = wc_price( $order->get_subtotal() ); break; case 'order_subtotal_raw': $value = $order->get_subtotal(); break; case 'order_tax': $value = wc_price( $order->get_total_tax() ); break; case 'order_tax_raw': $value = $order->get_total_tax(); break; case 'order_discounts': $value = wc_price( $order->get_discount_total() * - 1 ); break; case 'order_discounts_raw': $value = ( $order->get_discount_total() * - 1 ); break; case 'order_coupons': $coupons = $order->get_coupon_codes(); if ( is_array( $coupons ) ) { $value = '<ul>'; $value .= '<li>' . implode( '</li><li>', $coupons ) . '</li>'; $value .= '</ul>'; } else { $value = $coupons; } break; case 'order_products': $items = $order->get_items(); if ( $items ) { $value = '<ul>'; /** @var WC_Order_Item_Product $item */ foreach ( $items as $item ) { $product = $item->get_product(); $value .= '<li>' . $product->get_title() . '</li>'; } $value .= '</ul>'; } break; case 'order_products_qty': $items = $order->get_items(); if ( $items ) { $value = '<ul>'; /** @var WC_Order_Item_Product $item */ foreach ( $items as $item ) { $product = $item->get_product(); $value .= '<li>' . $product->get_title() . ' x ' . $item->get_quantity() . '</li>'; } $value .= '</ul>'; } break; case 'order_products_links': $items = $order->get_items(); if ( $items ) { $value = '<ul>'; /** @var WC_Order_Item_Product $item */ foreach ( $items as $item ) { $product = $item->get_product(); $value .= '<li><a href="' . $product->get_permalink() . '">' . $product->get_title() . '</a></li>'; } $value .= '</ul>'; } break; case 'payment_method': $value = $order->get_payment_method_title(); break; case 'CARRIER': $value = Automator()->helpers->recipe->get_form_data_from_trigger_meta( 'WOOORDER_CARRIER', $trigger_id, $trigger_log_id, $user_id ); break; case 'TRACKING_NUMBER': $value = Automator()->helpers->recipe->get_form_data_from_trigger_meta( 'WOOORDER_TRACKING_NUMBER', $trigger_id, $trigger_log_id, $user_id ); break; case 'SHIP_DATE': $value = Automator()->helpers->recipe->get_form_data_from_trigger_meta( 'WOOORDER_SHIP_DATE', $trigger_id, $trigger_log_id, $user_id ); $value = $value ? date( 'Y-m-d H:i:s', $value ) : ''; break; } } } } } } return $value; }
Expand full source code Collapse full source code View on Github