I tried by putting in a min and max value. Still doesn’t work. I think the developer needs to look at this piece of code from the class_frontend.php. I think he is first cleaning the string (which will strip out the ‘%’) and then doing a check in the IF statement to see if there is a ‘%’ sign to do a calculation as a percentage. If no ‘%’ sign is there, it will treat is as an absolute number and apply the amount. No matter what, it will always go into the ELSE part of the command.
if ( isset( $all_tips[ $k ] ) ) {
$tip = array_merge( $tip, [ ‘key’ => $k ], $all_tips[ $k ] );
$value = self::clean_value( $tip[‘value’] );
if ( ! empty( $value ) ) {
if ( str_contains( $value, ‘%’ ) ) {
$subtotal = apply_filters( ‘wpcot_cart_subtotal’, WC()->cart->get_subtotal() );
$amount = ( (float) $value / 100 ) * $subtotal;
} else {
$amount = (float) $value;
}