/** * When a formidable form submitted, add form's connected product to cart. */ add_action('frm_after_create_entry', 'ff_take_user_to_wc_checkout_for_payment', 20, 2); function ff_take_user_to_wc_checkout_for_payment($entry_id, $form_id) { $linked_products = get_posts([ 'post_type' => 'product', 'post_status' => 'publish', 'numberposts' => 1, 'meta_key' => '_attached_formidable_form', 'meta_value' => $form_id, 'cache_results' => false, ]); if (empty($linked_products)) { return; } $product_id = $linked_products[0]->ID; if (!function_exists('WC') || !WC()->session) { return; } if (method_exists(WC()->session, 'set_customer_session_cookie')) { WC()->session->set_customer_session_cookie(true); } WC()->cart->empty_cart(); $entry = FrmEntry::getOne($entry_id, true); $form_data = $entry->metas; $addon_total = 0; foreach ($form_data as $value) { if (is_string($value) && strpos(trim($value), '$') === 0) { $price = floatval(str_replace(['$', ','], '', $value)); $addon_total += $price; } } WC()->session->set('addon_total', $addon_total); WC()->cart->add_to_cart($product_id, 1, 0, [], ['addon_total' => $addon_total]); if (empty($_POST['frm_ajax'])) { wp_safe_redirect(wc_get_checkout_url()); exit; } } /** * When an item is added to the cart, remove other products. */ add_filter( 'woocommerce_add_to_cart_validation', 'ff_keep_only_one_product_in_the_cart', 10, 3 ); function ff_keep_only_one_product_in_the_cart( $valid, $product_id, $quantity ) { if( ! empty ( WC()->cart->get_cart() ) && $valid ) { WC()->cart->empty_cart(); } return $valid; } /** * Disable add to cart confirmation message. */ add_filter( 'wc_add_to_cart_message_html', '__return_false' ); /** * Redirect user to checkout page after adding a product to cart. */ add_filter ('add_to_cart_redirect', 'ff_redirect_to_checkout'); function ff_redirect_to_checkout() { global $woocommerce; $checkout_url = $woocommerce->cart->get_checkout_url(); return $checkout_url; } /** * Calculate formidable add-on prices and add them to the total price in WC checkout. */ add_action('woocommerce_before_calculate_totals', 'ff_apply_addon_total_to_cart_price', 10, 1); function ff_apply_addon_total_to_cart_price($cart) { if (is_admin() && !defined('DOING_AJAX')) { return; } foreach ($cart->get_cart() as $cart_item) { if (!empty($cart_item['addon_total'])) { $base_price = $cart_item['data']->get_price(); $addon_price = floatval($cart_item['addon_total']); $cart_item['data']->set_price($base_price + $addon_price); } } } /** * Use different Authorize.net accounts in checkout. */ add_filter( 'option_woocommerce_authorizeaim_settings', function( $woocommerce_authorizeaim_settings ) { global $woocommerce; if ( function_exists( 'is_checkout' ) && function_exists( 'get_field' ) && is_checkout() ) { foreach ( $woocommerce->cart->get_cart() as $cart_item ) { $product_id = $cart_item['product_id']; $api_login_id = get_post_meta( $product_id, 'api_login_id', true ); $transaction_key = get_post_meta( $product_id, 'transaction_key', true ); if ( !empty( $api_login_id ) && !empty( $transaction_key ) ) { $woocommerce_authorizeaim_settings['login_id'] = $api_login_id; $woocommerce_authorizeaim_settings['transaction_key'] = $transaction_key; break; } } } return $woocommerce_authorizeaim_settings; } ); /** * When placing a new WC order by submitting formidable, * set order's customer detail according to the submitted information. */ add_action( 'woocommerce_new_order', 'ff_update_customer_data', 10, 2 ); function ff_update_customer_data($order_id,$order){ $postdata = $_POST; $email = $postdata['la_email']; $username = $postdata['la_email']; $args = array( 'user_email' => $email, 'display_name' => $postdata['la_first_name'], 'first_name' => $postdata['la_first_name'], 'last_name' => $postdata['la_last_name'] ); $userdata = wc_create_new_customer($email,$username,'',$args); $userdata = json_decode(json_encode($userdata), true); if(isset($userdata['errors'])){ $customer = get_user_by('email',$email); if($customer){ $user_id = $customer->ID; } }else{ $user_id = $userdata; update_user_meta($user_id, "first_name",$postdata['la_first_name']); update_user_meta($user_id, "last_name",$postdata['la_last_name']); } $address = array( 'first_name' => $postdata['la_first_name'], 'last_name' => $postdata['la_last_name'], 'email' => $email, 'phone' => $postdata['la_ower_phone'], 'address_1' => $postdata['la_buisiness_adddress_1'], 'address_2' => $postdata['la_buisiness_adddress_2'], 'city' => $postdata['la_buisiness_adddress_city'], 'state' => $postdata['la_buisiness_adddress_state'], 'postcode' => $postdata['la_buisiness_adddress_zipcode'], 'country' => 'US' ); $order = new WC_Order($order_id); $order->set_customer_id($user_id); $order->set_address($address, 'billing'); $order->set_address($address, 'shipping'); $order->save(); } /** * Link formidable entry with woocommerce order. -- ⇩⇩⇩ -- */ // 1. Store formidable entry ID in the customer session. add_action( 'frm_after_create_entry', function( $entry_id, $form_id ) { WC()->session->set( 'frm_entry_id', $entry_id ); }, 20, 2 ); // 2. Set formidable entry id from session to the order as an order meta. add_action( 'woocommerce_checkout_create_order', function( $order, $data ) { if ( $entry_id = WC()->session->get( 'frm_entry_id' ) ) { $order->update_meta_data( '_frm_entry_id', $entry_id ); } }, 10, 2 ); // 3. Display the link to the formidable entry on the order details page. add_filter( 'woocommerce_order_item_display_meta_key', function( $display_value, $meta ) { if ( $meta->key == '_formidable_form_data' ) { $display_value = __( 'Formidable Entry', 'formidable-woocommerce' ); } return $display_value; }, 10, 2 ); Steps to Getting a Seller's Permit Infographic | FastFilings
Steps to Getting a FastFilings Seller’s Permit

Steps to Getting a FastFilings Seller’s Permit

You’ve got plenty to think about when starting your own business, but, thanks to FastFilings, getting your seller’s permit doesn’t have to be one of them. All you have to do is follow these simple steps, and your permit will be ready before you know it.

Have Important Documents Ready

In order to be able to successfully complete our permit application form, we’ll need some personal and business information from you, including your SSN, driver’s license, business address, and business bank account details.

Hop Online

You read that right; all you have to do is visit the FastFilings website to get your permit. Our online form was designed to be as stress-free and simple as possible. When you’ve got all of the documents needed to complete the form, your application is checked and then sent.

We not only expedite every CDTFA application but—when it’s ready—we email your permit to you—and all for just a few minutes of your time!
?
There’s no doubt that when you want a seller’s permit, the best way to get it is from FastFilings. Our informative infographic has the full story about how to start today.?

Steps to Getting a FastFilings Seller’s Permit

Leave a Comment

Your email address will not be published. Required fields are marked *