You need to double any {
or }
that are not part of a formatting placeholder. For example, you have:
function admin_add_{fieldname}_field( $fields ) {
[....]
}
in the string. The {
at the end of the first line and }
on the last are not part of a placeholder. Replace them with {{
and }}
respectively:
function admin_add_{fieldname}_field( $fields ) {{
[....]
}}
Doubling up those curly braces escapes them; the final output will contain single {
and }
characters again.
In the full string you used, that’d be:
code=""'
// {label}
add_filter( 'submit_job_form_fields', 'frontend_add_{fieldname}_field' );
function frontend_add_{fieldname}_field($fields) {{
$fields['job']['job_{fieldname}'] = array(
'label' => __('{label}', 'job_manager'),
'type' => 'text',
'required' => {required},
'priority' => 7,
'placeholder' => '{placeholder}'
);
return $fields;
}}
add_filter( 'job_manager_job_listing_data_fields', 'admin_add_{fieldname}_field' );
function admin_add_{fieldname}_field( $fields ) {{
$fields['_job_{fieldname}'] = array(
'label' => __( '{label}', 'job_manager' ),
'type' => 'text',
'placeholder' => '{placeholder}',
'description' => ''
);
return $fields;
}}
'''