add_action( 'woocommerce_before_calculate_totals', 'auto_add_coupons_total_based', 10, 1 );
function auto_add_coupons_total_based( $cart ) {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
        return;

    // HERE define your coupon code
    $coupon_percent = 'test2018'; # <===  <===  <===  <===  <===  <===
    $coupon_fixed = 'test2018'; # <===  <===  <===  <===  <===  <===  <===

    // Get cart subtotal
    $subtotal = 0;
    foreach($cart->get_cart() as $cart_item ){
        $subtotal += $cart_item['line_subtotal'];
        $subtotal += $cart_item['line_subtotal_tax']; // with taxes
    }

    // Coupon type "percent" (less than 200)
    if( $subtotal < 100 && ! $cart->has_discount( $coupon_percent ) ){
        // If coupon "fixed amount" type is in cart we remove it
        if( $cart->has_discount( $coupon_fixed ) )
            $cart->remove_coupon( $coupon_fixed );

        // Apply the "percent" type coupon code
        $cart->add_discount( $coupon_percent );
    }
    // Coupon type "fixed amount" (Up to 200)
    elseif( $subtotal >= 100 && ! $cart->has_discount( $coupon_fixed ) ) {
        // If coupon "percent" type is in cart we remove it
        if( $cart->has_discount( $coupon_percent ) )
            $cart->remove_coupon( $coupon_percent );

        // Apply the "fixed amount" type coupon code
        $cart->add_discount( $coupon_fixed );
    }
}