Answer:

  1. Create an scoreboard named "carrot" /scoreboard objectives add carrot stat.useItem.minecraft.carrot_on_a_stick
  2. For multiplayer compatibility add a scoreboard named "P1" (for Player 1; needs Team selection) /scoreboard objectives add P1 dummy
  3. In a command block put this command to summon the armor stand that is required to use this system /summon armor_stand 151 102 -188 {Invisibility:1b,Invulnerable:1b,Small:1b,Marker:1b,CustomName:"P1CP",DisabledSlots:2039583}
  4. In a clock-command block place this command to test for the P1 player, that right clicked the carrot-rod /testfor @p[score_P1=1,score_P1_min=1,score_carrot=1,score_carrot_min=1]
  5. Place three chain command blocks on conditional mode right behind the violet one (repeatable command block;violet = default Resource Pack) and put this command into the first tp @p[score_P1=1,score_P1_min=1] @e[name=P1CP]
  6. In the second command block set this command tp @p[score_P1=1,score_P1_min=1] ~ ~ ~ ~ 0
  7. In the last set this scoreboard players set @p[score_carrot=1,score_carrot_min=1] carrot 0
  8. At last, place this command into an another clock-command block to actually let it happen /execute @p[score_P1=1,score_P1_min=1] ~ ~ ~ detect ~ ~-1 ~ minecraft:emerald_block 0 tp @e[name=P1CP] @p[score_P1=1,score_P1_min=1]

The scoreboard names "carrot" and "P1" and the armor stand name "P1CP" can be changed, but don't forget to change the name in every command block that has the names in it. "minecraft:emerald_block" can be changed into a block of your choice. Make sure your command blocks are in the spawn chunks, so when you can't see the command block's chunks, it will still work.