I know this is a bit old, but I just had a similar niggle, so thought I’d respond. In order for the remove to work, you have to specify correctly where ‘woocommerce_catalog_ordering’ is hooked.
If you tried this:
remove_action('woocommerce_pagination','woocommerce_catalog_ordering', 20);
and it didn’t work, then that’s probably because your ‘woocommerce_catalog_ordering’ isn’t hooked onto woocommerce_pagination, or if it is, it isn’t hooked at position 20.
The reason this worked for other people but not for you is probably that their theme did have ‘woocommerce_catalog_ordering’ hooked at that position.
What I did was look in woocommerce/template/archive-product.php where I saw on line 40 that woocommerce_catalog_ordering was hooked at position 30 to woocommerce_before_shop_loop. I doublechecked this against woocommerce-hooks.php, and yes, there was ‘woocommerce_catalog_ordering’at position 30, and nothing anywhere else changing that.
So, what worked for me was:
remove_action('woocommerce_before_shop_loop', 'woocommerce_catalog_ordering',30);
This probably won’t work for you, because your form is at the bottom, so it probably isn’t hooked to woocommerce_before_shop_loop. You need to find out what it is hooked onto, and where. I suggest you do a global search for woocommerce_catalog_ordering – probably somewhere in your theme, will be a line that says something like :
add_action( 'functionhookedto', 'woocommerce_catalog_ordering', 30 );
Once you’ve found that, you should be able to unhook it in your functions.php. I hope that makes sense!