Woocommerce – Hide a Column in Cart Table

After looking in cart.php, it doesn’t look like you can do that with hooks, as there is static html that wraps around the product price content. That product price content is what is affected by the woocommerce_cart_item_price hook that you’ve tried, but not the containing static html markup for the column structure itself.

The good news is that you can override the cart.php template file by putting it in your theme, and then removing the static html output for the Price column in your version of the template file. You won’t have to worry about losing your changes this way, but you will have to keep an eye out for and merge any changes that Automattic makes to the Woocommerce plugins cart.php template file in the future.

To do the template override, just copy the Woocommerce plugin file from /wp-content/plugins/woocommerce/templates/cart/cart.php, and move it over to your theme so that Woocommerce recognizes your version as an override. In this case you would put the cart.php file into /wp-content/themes/your-theme/woocommerce/cart/cart.php after creating the woocommerce/cart/ directories inside your theme. After that Woocommerce should load your version of the file from your theme, instead of the plugin version of cart.php.

Finally you can just remove or comment out line 96 to line 100(in the latest version of cart.php), and that should remove the whole Price column from your output. There’s no way for me to tell, but you might need to touch up other visual things after doing this.

Here’s a little more info on overriding Woocommerce template files just in case:
https://docs.woocommerce.com/document/template-structure/