Uniswapv2 send to different address after swap [noob coder]

Dear clever people,

I'm really new to this, I'm struggling with the "To" address parameter on the method. I want the recipient of DAI to be different than the sender. So it receives ETH from a sender wallet, swap to DAI, and then send that DAI to the "to" address. It's for a donation project I'm toying with.

See my N00b code below. Any help will be massively appreciated!

contract UniswapTest {
  address internal constant UNISWAP_ROUTER_ADDRESS = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ;

  IUniswapV2Router02 public uniswapRouter;
  address private multiDaiKovan = 0x4F96Fe3b7A6Cf9725f59d353F723c1bDb64CA6Aa;
    event Approval(address indexed owner, address indexed spender, uint value); 
    event Transfer(address indexed from, address indexed to, uint value);
    event Swap(
        address indexed sender, 
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );

  constructor() {
    uniswapRouter = IUniswapV2Router02(UNISWAP_ROUTER_ADDRESS);
  }

  function convertEthToDai(uint daiAmount) public payable {
    uint deadline = block.timestamp + 15; // using 'now' for convenience, for mainnet pass deadline from frontend!
    uniswapRouter.swapETHForExactTokens{ value: msg.value }(daiAmount, getPathForETHtoDAI(), msg.sender , deadline);
    
    // refund leftover ETH to user
    (bool success,) = msg.sender.call{ value: address(this).balance }("");
    require(success, "refund failed");
  }

Have you referred to the documentation for swapETHForExactTokens?

I think you should simply replace msg.sender with whatever other address you want.

Thank you for getting back to me! Edited as I solved the issue with your guidance. I overthought it, Thank you so much!!!