Email’s contain
-
Hello,
How to change what mail (for example woocommerce order confirmation) contains? I would like to add some extra informations in mail: ordinal number of product, cost per one piece, quantity of ordered product and whole value of ordered product (cost per one piece * quantity).
Thank you for help!
-
Hey,
You would have to create custom placeholders for store/order-specific information like that.For example, adding a placeholder for billing email could look like this in a snippets plugin:
add_filter( 'kadence_woomail_order_body_text', 'custom_function_for_billing_email', 10, 2 ); function custom_function_for_billing_email( $text, $order ) { if ( is_a( $order, 'WC_Order' ) ) { $text = str_replace( '{billing_email}', $order->get_billing_email(), $text ); } return $text; }You would just need to create your own placeholders and the code to pull in that information from the order object.
Ben
Thank you very much! I’ve resolved my problem, but I have another one. I think it’s easier but I don’t know much php. I would be grateful if you could help me. It’s not related with the plugin, but I think for you it’s very easy. I have this code:
// Add min value to the quantity field (default = 1) add_filter('woocommerce_quantity_input_min', 'min_decimal'); function min_decimal($val) { return 0.1; } // Add step value to the quantity field (default = 1) add_filter('woocommerce_quantity_input_step', 'nsk_allow_decimal'); function nsk_allow_decimal($val) { return 0.01; } // Removes the WooCommerce filter, that is validating the quantity to be an int remove_filter('woocommerce_stock_amount', 'intval'); // Add a filter, that validates the quantity to be a float add_filter('woocommerce_stock_amount', 'floatval'); // Add unit price fix when showing the unit price on processed orders add_filter('woocommerce_order_amount_item_total', 'unit_price_fix', 10, 5); function unit_price_fix($price, $order, $item, $inc_tax = false, $round = true) { $qty = (!empty($item['qty']) && $item['qty'] != 0) ? $item['qty'] : 1; if($inc_tax) { $price = ($item['line_total'] + $item['line_tax']) / $qty; } else { $price = $item['line_total'] / $qty; } $price = $round ? round( $price, 2 ) : $price; return $price; }And it’s working perfectly, but I would like to make this code work only for variable products. I think it’s about change somewhere in ‘woocommerce_quantity_input_step’ to include the “variable” somewhere, but I dont know where and if it’s correct. I’ve tried many combinations but they weren’t working correctly.
Thank you much in advance!
-
This reply was modified 6 years, 3 months ago by
kamilen12.
// Add min value to the quantity field (default = 1) add_filter('woocommerce_quantity_input_min', 'min_decimal', 10, 2 ); function min_decimal($val, $product) { if ( $product->is_type( 'variable' ) ) { return 0.1; } $return $val; } // Add step value to the quantity field (default = 1) add_filter('woocommerce_quantity_input_step', 'nsk_allow_decimal', 10, 2 ); function nsk_allow_decimal($val, $product) { if ( $product->is_type( 'variable' ) ) { return 0.01; } $return $val; }I didn’t test that code, but essentially you need to pass the product object into the filter function and check for ‘variable’.
Thank you very much! Your code really help me. For others: All you have to do is correct two things. You have to delete the “$” before ending return:
// Add min value to the quantity field (default = 1) add_filter('woocommerce_quantity_input_min', 'min_decimal', 10, 2 ); function min_decimal($val, $product) { if ( $product->is_type( 'variable' ) ) { return 0.1; } <strong>$return</strong> $val; } // Add step value to the quantity field (default = 1) add_filter('woocommerce_quantity_input_step', 'nsk_allow_decimal', 10, 2 ); function nsk_allow_decimal($val, $product) { if ( $product->is_type( 'variable' ) ) { return 0.01; } <strong>$return</strong> $val; }(I have bolded them) And it works as it should.
Thank you one more time! -
This reply was modified 6 years, 3 months ago by
The topic ‘Email’s contain’ is closed to new replies.