Posted on

Adding recipients to quote (customer and admin emails) dynamically

// Add recipients to new quotes sent to admin
add_filter( 'woocommerce_email_recipient_new_rfq', 'new_rfq_conditional_email_recipient', 10, 2 );

function new_rfq_conditional_email_recipient( $recipient, $order ) {

    $order_id=$order->get_id() ;

    $some_field_name = get_post_meta( $order_id, "some_field_name", true );

//add recipient based on order metadata
    if ($some_field_name == "abc") {
        $recipient .= '';
    elseif ($some_field_name == "xyz"){
        $recipient .= 'receipt_xyz@somemail . com';
//add recipient based on products in the order
    $order = wc_get_order( $order_id );
    $items = $order->get_items();
    foreach ( $items as $item_id => $item ) {
        $product_id = $item->get_variation_id() ? $item->get_variation_id() : $item->get_product_id();
        if ( $product_id === 1 ) {
            $recipient .= "";
        if ( $product_id === 2 ) {
            $recipient .= "";

    return $recipient;

//You can repeat the same pattern for the following emails:
//email sent to customer
    add_filter( 'woocommerce_email_recipient_customer_rfq', 'customer_rfq_conditional_email_recipient', 10, 2 );
    function customer_rfq_conditional_email_recipient( $recipient, $order ) {
//follow the same pattern as above

//proposal email sent to customer
    add_filter( 'woocommerce_email_recipient_customer_rfq_sent', 'customer_rfq_sent_conditional_email_recipient', 10, 2 );
    function customer_rfq_sent_conditional_email_recipient( $recipient, $order ) {
//follow the same pattern as above
//email sent to admin for notes
    add_filter( 'woocommerce_email_recipient_admin_note', 'admin_note_conditional_email_recipient', 10, 2 );
function admin_note_conditional_email_recipient( $recipient, $order ) {
//follow the same pattern as above
Posted on

How to enable quote request only to selected roles in WooCommerce.

The following setup enables you to enable quote request checkout only to selected roles and allow others to buy and checkout normally.

If you need help setting it up, we can help.

Set the default setting to RFQ.


In the roles, leave 4a blank and in 4b add the role(s) that can only request a quote. You have to create the role first.


At the very bottom of the page, enter a label for people who can purchase(everybody else). This

Is the label for the cart button .


In the labels section use “Add to Quote”


And finally add this to the bottom of your functions.php

if(function_exists('gpls_woo_rfq_purchase_only')) {

    add_action('init', 'gpls_woo_rfq_check_role', 1);

    function gpls_woo_rfq_check_role()
        $in_role = false;

        if (is_user_logged_in())

            $user = wp_get_current_user();

            $user_roles = $user->roles;

            $eligible_roles = get_option('settings_gpls_woo_rfq_plus_visible_price_roles', 'no');

            $option_value_list = explode(',', $eligible_roles);

            foreach ($user_roles as $cat_id) {

                if (in_array(trim($cat_id), $option_value_list)) {
                    $in_role = true;

        if($in_role == false){
            gpls_woo_rfq_purchase_only(); // user can see prices and purchase normally



Posted on

WooCommerce Quote Request “Normal Checkout” Setup



If there a few item in each category here and there that you don’t want to be “Quote Items”, then you can handle that in the individual product setup. After you have applied it by category, then navigate to the product->advanced setup and uncheck “Enable RfQ”.



Handle the labels for Purchase vs Quote in labels. Make the first 4 the way it is. Read and adjust the remaining labels too.

cid:image015.png@01D60F6E.B56913F0 cid:image016.png@01D60F6E.B56913F0

Navigate to Quote Request Page tab and make sure there is a url there for Request for Quote Page URL. Last, create a menu item for quote request page so people can see their quote request page.


Posted on

Setup products as quote items by category in quote request for WooCommerce

In the free version, you can mark an individual item as a quote item in the product advanced setup.

In the Plus version you can assign the quote status to one or more product categories in the premium version. You would create the categories in WooCommerce. Assign the products to those categories as you would normally in WooCommerce. Then you mark those categories as quote items. You can still remove an individual product from the category by going to the advanced setup of that product.

Please note: to check the check this to apply the categories before saving every time you want to apply this setting. If you want to remove all categories, then delete all the categories from the select box, check the “apply the categories before saving” checkbox and save setting.

Posted on

How to customize the Emails for the Quote Request Plugin

In order to customize your emails you can navigate to WooCommerce->settings->emails and click on manage and copy it to your theme folder. You can customize the email from there.

Free version emails:

  • RFQ-ToolKit New Request for Quote (Customer)
  • RFQ-ToolKit New RFQ Admin (Admin)

Plus version:

  • RFQ-ToolKit Quote Sent  ( Customer )
  • RFQ-ToolKit Admin note  ( Admin)
  • RFQ-Toolkit Product Marketing  (Customer)



Click on manage.

At the bottom of the screen, click on copy template. The templates will get copied to your WooCommerce directory under your theme/child theme. You can edit the html and wordings in the template.


Posted on

How to have a Request Quote only for selected items?

You can have a Request Quote only for selected items in the NP Quote Request WooCommerce plugin. 

Navigate to WooCommerce->settings->RFQ Toolkit->general tab and choose “Normal checkout” in option 1.

Setup a product as a quote item:

Navigate to product advanced setup and check the following as shown below and save.

The setup shows as below in the shop and single product pages.

Posted on

How to turn “Quote Request” mode off conditionally

Set the setting to RFQ mode in setting 1 in general setting. Do not show prices. That will be the default.

Add the following to your functions.php

add_action(‘init’, ‘gpls_woo_rfq_check’, 1000);
function gpls_woo_rfq_check(){
//check if the user should be able to see prices and purchase ( the normal WooCommerce setting)
//if so..
gpls_woo_rfq_purchase_only(); // user can see prices and purchase normally
gpls_woo_rfq_purchase_or_quote();// user can see prices, purchase or request a quote

Posted on

How to customize the quote request page

There are multiple ways to customize the quote request page in the normal checkout mode. 

First, in the free version, you can modify to the Quote Request page by using the template in “plugins/woo-rfq-for-woocommerce/woocommerce/woo-rfq/rfq-cart.php”. Copy the folder to the WooCommerce directory in your theme directory and modify it if you wish . You can control the layout and the page template for this page in your WordPress admin area. Typically the Quote Request page looks better with a full-width template without any side-bars.

Using the Plus version, you can customize the quote request page for visitors by navigating to WooCommerce->Settings->RFQ-Toolkit “Quote Request Page” tab. You can make hide or make the field required. Name and email can not be removed and will still be required fields. This feature is available in the Plus version.

Finally, using the Plus version, you can include a Ninja Form in the quote request page to include additional fields of your own choosing. You can create a Ninja form and then select that form in the settings. The form will show in the quote request page. Data captured by the form will show in the order and the email sent to admin. 



Posted on

NP Quote Request WooCommerce: How to save products as quote items in bulk.

You can make products to be quote items in bulk in a couple of ways. In the WooCommerce->settings->RFQ-Toolkit general setting. Under MISC options ( see screenshots below).

  1. If you want to just make everything RFQ enabled, then use option 1 and select to enable all products. This would enable “All” the products which is probably not what you want.
  2. You can select by category.
    1. Select the categories for the products you want enabled in option 3.
    2. Select option 2 and save settings.
    3. All the existing products in the categories you selected, will be activated. Any new product in those categories will also be activated automatically.
    4. You can manually in-activate for individual products within those categories.

If your products categories are not setup to do this easily. Create a new category, “Quote” for example, apply that categories to all the products you want to activate. Then use option b and c above on that category. You can read here how to apply a category to products in bulk.