'Save Post and Add Post Meta Executing Twice

I'm trying to add or update two post meta on saving a post. Add if it's a new post and update if existing, but this function creates four in the database instead of two meta.

add_action( 'save_post',  'add_rewards');
global $WCFM, $WCFMmp;
function add_rewards ($product_id){
        if($product_id){
            $post_type = get_post_type($product_id);
            if($post_type == 'product'){
                $product = wc_get_product( $product_id );
                $reg_price = $product->get_regular_price();
                $sal_price = $product->get_sale_price();
                $pric = $product->get_price();
                add_post_meta($product_id,'main_reward', $reg_price); 
                add_post_meta($product_id,'sub_reward', $sal_price); 
        }    
   }    
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source