/**
* 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 );
Voluntary vs. Involuntary LLC Dissolution: What Business Owners Need to Know
Skip to content
Voluntary vs. Involuntary LLC Dissolution: What Business Owners Need to Know
When forming a limited liability company (LLC), business owners typically focus on launching and growing their business. However, it’s just as important to understand what happens when the business must be closed. Whether due to retirement, financial difficulties, or legal complications, dissolving an LLC is a critical legal process.
We’ll break down the difference between voluntary dissolution of an LLC and involuntary dissolution, explain what happens after an LLC is dissolved, and cover whether the process can be completed online.
What Is the Difference Between Voluntary and Involuntary LLC Dissolution?
LLC dissolution refers to the legal process of closing down a limited liability company. There are two main types of dissolution: voluntary and involuntary. While both end in the termination of the business, they differ in terms of initiation, control, and potential consequences. Therefore, how you dissolve an LLC requires a different approach in each case.
Voluntary dissolution occurs when the members (owners) of an LLC choose to close the business. This decision can be based on various reasons, such as:
The business has fulfilled its purpose
The members want to retire or pursue other ventures
The LLC is no longer financially viable
To initiate voluntary dissolution, the LLC must follow the procedure outlined in its operating agreement or, if none exists, the state’s default laws. This usually involves:
A vote by the members to dissolve the LLC
Filing Articles of Dissolution (sometimes called a Certificate of Dissolution) with the state
Notifying creditors and settling debts
Distributing remaining assets to members
Voluntarily dissolving a businessgives the owners time to wind down operations properly, avoid penalties, and maintain a clean legal record.
Involuntary Dissolution
Involuntary dissolution of an LLC happens when it’s forced to shut down, usually by a court order or state action. Common causes include:
Failure to file annual reports or pay required fees/taxes
Legal disputes among members
Fraud, misconduct, or illegal business activities
Court judgment in a lawsuit
State authorities can administratively dissolve an LLC for noncompliance. For example, depending on your state, if your company fails to file annual reports for two consecutive years, the Secretary of State may automatically dissolve it.
In more serious cases, a court may order dissolution of an LLC due to internal conflict or legal violations. Involuntary dissolution often carries more legal and financial consequences, including potential lawsuits and personal liability if the dissolution process isn’t properly managed.
Once your LLC is legally dissolved—whether voluntarily or involuntarily—you must take several steps to officially close the business:
1. Cease Business Operations
You must stop doing business under the LLC’s name. Continuing to operate after dissolution can expose you to legal and financial risks.
2. Notify Stakeholders
Inform clients, vendors, lenders, and employees about the dissolution. This maintains professionalism and helps tie up outstanding business matters.
3. Settle Debts and Obligations
Pay off all outstanding debts, including taxes, vendor invoices, and employee wages. Any remaining assets are then distributed among members according to their ownership percentages.
4. Cancel Permits and Licenses
Terminate any business licenses, permits, and registrations associated with your LLC. This prevents future tax or regulatory issues.
5. Close Business Bank Accounts
Once all financial transactions are complete, close your LLC’s bank accounts to finalize the business closure.
Logging into your state’s Secretary of State website or business portal—or using a third-party service like FastFilings to handle the process on your behalf
Filling out an online Articles of Dissolution form
Paying a filing fee, along with any additional associated fees
Some states may also require you to file final tax returns or obtain a tax clearance certificate before approving the dissolution. Requirements vary, so it’s important to check the rules for your state. For example, California, Florida, and Texas all offer online filing, but each has its own procedures and forms.
If you’re unsure, consider consulting a business attorney or accountant who knows how to close an LLC properly and ensure all legal and tax obligations are met.
Whether you’re dealing with a voluntary or involuntary dissolution of an LLC, it’s important to understand the key differences, legal responsibilities, and post-dissolution requirements. Taking your time can avoid future legal headaches and other issues.
FastFilings can take care of the paperwork for you. We offer fast, reliable, and affordable online LLC dissolution services tailored to your state’s requirements. Contact us today to get started and receive expert support.