sset( $settings['discord_title'] ) ? $settings['discord_title'] : esc_html__( 'A new Submission', 'elementor-pro' ),
'description' => isset( $settings['discord_content'] ) ? $settings['discord_content'] : esc_html__( 'A new Form Submission has been received', 'elementor-pro' ),
'author' => [
'name' => isset( $settings['discord_username'] ) ? $settings['discord_username'] : esc_html__( 'Elementor Forms', 'elementor-pro' ),
'url' => $page_url,
'icon_url' => isset( $settings['discord_avatar_url'] ) ? $settings['discord_avatar_url'] : null,
],
'url' => $page_url,
'color' => $color,
];
if ( ! empty( $settings['discord_form_data'] ) && 'yes' === $settings['discord_form_data'] ) {
// prepare Form Data
$raw_fields = $record->get( 'fields' );
$fields = [];
foreach ( $raw_fields as $id => $field ) {
$fields[] = [
'name' => $id,
'value' => $field['value'],
'inline' => false,
];
}
$embeds['fields'] = array_values( $fields );
}
if ( ! empty( $settings['discord_ts'] ) && 'yes' === $settings['discord_ts'] ) {
$embeds['timestamp'] = gmdate( \DateTime::ISO8601 );
$embeds['footer'] = [
'text' => sprintf(
/* translators: %s: Elementor. */
esc_html__( 'Powered by %s', 'elementor-pro' ),
'Elementor'
),
'icon_url' => is_ssl() ? ELEMENTOR_ASSETS_URL . 'images/logo-icon.png' : null,
];
}
$webhook_data = [
'embeds' => array_values( [ $embeds ] ),
];
$webhook_data = apply_filters( 'elementor_pro/forms/discord/webhook_args', $webhook_data );
$response = wp_safe_remote_post( $settings['discord_webhook'], [
'body' => wp_json_encode( $webhook_data ),
'headers' => [ 'Content-Type' => 'application/json; charset=utf-8' ],
]);
if ( 204 !== (int) wp_remote_retrieve_response_code( $response ) ) {
throw new \Exception( 'Webhook error.' );
}
}
}