Sprite collisions from different directions

I am having trouble figuring out how to handle collisions from different directions. I have a player sprite, platform spite and ground tiles.

I want the player sprite to collide with only the top of the platform sprite and when the platform sprite falls I want it to call its destroy function when it collides with the ground tiles.

This setup allows the player sprite to collide with the top and bottom of the platforms and the platforms to collide with the ground when they fall. However I was the player to jump up through the platforms.

Is there a way I can dynamically adjust the collision behavior so that when the player is jumping up it doesn’t collide with the platform?

class Platform() {
...
this.sprite.body.checkCollision.up= true;
this.sprite.body.checkCollision.down = true;
this.platform.body.checkCollision.left = false;
this.platform.body.checkCollision.right = false;
..
}

create() {
...
this.player = new Player(...)
var platform = new Platform(...)

this.physics.add.collider(this.player.sprite, platform.sprite)
this.physics.add.collider(platform.sprite, this.groundLayer, this.platGroundCollision, undefined, this);

...
}

private platGroundCollision(obj1: Phaser.GameObjects.GameObject, obj2: Phaser.GameObjects.GameObject){
obj1.destroy()
}