<input value="<?php echo the_permalink(); ?>" name="link" type="text" />
<input value="<?= the_permalink(); ?>" name="link" type="text" />
Но на почту приходит не урл, а код <?php the_permalink(); ?>
Если с директивой new используется строка (string), содержащая имя класса, то будет создан новый экземпляр этого класса. Если имя находится в пространстве имен, то оно должно быть задано полностью.
Напрямую в запрос не подставлять, используйте параметризованные запросы к базе.