/**
* 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 );
Understanding LLC Dissolution: A Step-by-Step Guide
Skip to content
Understanding LLC Dissolution:
A Step-by-Step Guide
Closing a business is never easy, but understanding the correct procedures can help make it less stressful. If you own a limited liability company (LLC), properly dissolving it is essential to avoid ongoing tax obligations, state fees, and legal issues. We’ll explain how to dissolve an LLC and comply with all applicable laws and regulations.
What Does It Mean to Dissolve an LLC?
Dissolving a business means officially closing it by following a series of legal and administrative steps. It’s more than just stopping operations—you must formally notify your state government, settle financial obligations, and inform all stakeholders. Until an LLC is formally dissolved, it remains active in the eyes of the law, meaning you could still deal with taxes, fees, and lawsuits.
Step 1: Review Your LLC's Operating Agreement and State Laws
Before taking any action, review any relevant state laws and your business’s operating agreement (contract). It should spell out the specific procedure for dissolution, including:
How members vote to dissolve (unanimous consent or majority)
Distribution of assets, including investments, profits, and tangible goods
Handling remaining debt, tax, and legal obligations
If you don’t have an operating agreement, follow your state’s default dissolution rules, which often require a majority vote of members. Also, refer to your Articles of Organization and consult your Secretary of State’s website for detailed guidance on how to close an LLC in compliance with state law.
Step 2: Vote to Dissolve the LLC
Hold a formal meeting with LLC members to vote on business dissolution. Document the decision in meeting minutes or a written resolution. Make sure the vote adheres to the procedures outlined in your contract or the state’s requirements.
Having a written record of the decision protects you legally and is often required when you file paperwork for the dissolution of a business.
Articles of Dissolution (sometimes called a Certificate of Dissolution) must be filed with the appropriate state agency, typically the Secretary of State.
The form usually requires information such as:
LLC name
Date of dissolution
State where the LLC was formed
Reason for dissolution (optional in many states)
Member signatures
There is usually a filing fee associated with submitting this certificate. Some states allow you to dissolve an LLC online, while others require a mailed submission.
Note: Some states may require a tax clearance certificate from the Department of Revenue before you can officially dissolve your LLC.
Step 4: Notify Creditors, Employees, and Stakeholders
After filing, you must notify everyone involved with your business about the dissolution of your LLC. This includes:
Creditors: Let them know the LLC is dissolving and give them instructions for submitting claims. Creditors may have a limited time to do so.
Employees: If you have employees, provide final paychecks and comply with labor laws regarding layoffs.
Vendors and Service Providers: Complete any outstanding orders or terminate contracts according to their terms.
Customers: Fulfill outstanding orders, issue necessary refunds, and provide notice about how ongoing support (if any) will be handled.
Government Agencies: Notify the IRS, state tax authorities, licensing boards, and any other agencies that your LLC is dissolving.
After you file a dissolution of business, you must properly handle tax obligations to avoid penalties that can appear years later.
Start by filing your final federal and state tax returns. For multi-member LLCs taxed as partnerships, file a final IRS Form 1065 and issue final Schedule K-1s to each member. For single-member LLCs, file the last Schedule C attached to your individual tax return. Make sure to check the box indicating that this is your “final return.”
If you have employees, you must file final employment tax forms (such as Form 941 for quarterly taxes and Form 940 for federal unemployment taxes) and issue final W-2s to them.
You may also need to file a final state income or franchise tax return, depending on your state’s rules.
Step 6: Settle Remaining Financial Obligations
Before distributing any remaining assets to members, the LLC must settle all outstanding debts and obligations. Create a list of all creditors, lenders, or vendors you owe and contact them to arrange payment terms. This may require:
If business licenses, permits, and registrations are left active after LLC dissolution, you might continue to incur renewal fees or compliance obligations. Therefore, you want to make sure to cancel:
Local business operation licenses
Sales tax permits
Health permits
Professional licenses (for industries like law, medicine, architecture, etc.)
Contact each issuing agency directly to find out how to cancel or surrender the licenses. Some cancellations may require a formal letter or a simple form submission.
The dissolution of an LLC also requires closing all accounts associated with the business. This avoids future fees and unauthorized transactions.
To avoid unnecessary costs and confusion, close the LLC’s checking and savings accounts, ensuring all checks have cleared, remaining funds are withdrawn, and automatic payments/deposits are canceled. Also, remember to shut down accounts with any online payment services you’ve used, such as PayPal or Stripe, and any online subscriptions tied to your LLC’s financial accounts.
After LLC dissolution, the business legally ceases to exist, and you are no longer responsible for state filings, taxes, or business liabilities, though you should retain records in case of future inquiries.
How much does it cost to dissolve an LLC?
Dissolving an LLC involves a filing fee set by each state, along with any outstanding obligations such as unpaid taxes or penalties. Exact costs depend on your location and the current status of your business.
Can I dissolve my LLC online?
In many states, you can file Articles of Dissolution online through the Secretary of State. Check their website to learn how to dissolve an LLC online without hassle.
Need help dissolving your LLC quickly and correctly? FastFilings makes the process simple, affordable, and stress-free. Our team handles the state filings on your behalf—we know how to close a business properly to avoid fines and penalties. Start your LLC dissolution today with FastFilings and move forward with confidence!