У меня есть счетчик почты, который увеличивается при успешной отправке письма.Этот почтовый счет виден в теле письма.Проблема возникает, когда две формы отправляются практически одновременно.Когда это происходит, электронное письмо отправляется разным пользователям с одинаковым количеством сообщений, например 10 и 10, тогда как оно должно быть 10 и 11.
Исходный код отсюда https://sevenspark.com/tutorials/how-to-create-a-counter-for-contact-form-7
#this code block is inserted in the email through shortcode
function RC_counter_func() {
$val2 = date( "Y" ) . '-' . zeroise( get_option( 'RC_COUNTER', 0 ) + 1, 5 ); //Increment the current count
return $val2;
}
add_shortcode( 'RC_COUNTER', 'RC_counter_func' );
// Action performed when the mail is actually sent by CF7
function cf7dtx_increment_mail_counter( $WPCF7_ContactForm ) {
#retrieve the details of the form/post
$wpcf7 = WPCF7_ContactForm::get_current();
$submission = WPCF7_Submission::get_instance();
$form_id = $WPCF7_ContactForm->id();
if ( $submission && $form_id === 988 || $form_id === 1584 ) {
$val2 = zeroise( get_option( 'RC_COUNTER', 0 ) + 1, 5 ); //Increment the current count
update_option( 'RC_COUNTER', $val2 ); //Update the settings with the new count
}
}
add_action( 'wpcf7_mail_sent', 'cf7dtx_increment_mail_counter' );
Буду очень признателен за любые идеи о том, как предотвратить дублирование!При отправке форм одна за другой проблема не возникает, и номер правильно увеличивается в БД, но не в электронном письме.