<?php
hooks()->addAction('copy_campaign', function(CAttributeCollection $collection){
/** @var Campaign $campaign **/
$campaign = $collection->itemAt('copied');
$prefix = '#';
if (preg_match('/'.$prefix.'(\d+)$/', $campaign->name, $matches)) {
$counter = (int)$matches[1];
$counter++;
$campaign->name = (string)preg_replace('/'.$prefix.'(\d+)$/', $prefix . $counter, $campaign->name);
} else {
$campaign->name .= ' ' . $prefix . '1';
}
$campaign->save(false);
});
<?php
hooks()->addAction('copy_campaign', function(CAttributeCollection $collection){
/** @var Campaign $campaign **/
$campaign = $collection->itemAt('copied');
$prefix = '#';
if (preg_match('/#(\d+)$/', $campaign->name, $matches)) {
$counter = (int)$matches[1];
$counter++;
$campaign->name = (string)preg_replace('/#(\d+)$/', $prefix . $counter, $campaign->name);
} else {
$campaign->name .= ' ' . $prefix . '1';
}
$campaign->save(false);
});
<?php
hooks()->addAction('copy_campaign', function(CAttributeCollection $collection){
/** @var Campaign $campaign **/
$campaign = $collection->itemAt('copied');
$prefix = '#';
if (preg_match('/'.$prefix.'(\d+)$/', $campaign->name, $matches)) {
$counter = (int)$matches[1];
$counter++;
$campaign->name = (string)preg_replace('/'.$prefix.'(\d+)$/', $prefix . $counter, $campaign->name);
} else {
$campaign->name .= ' ' . $prefix . '1';
}
$campaign->save(false);
});
After the if/else, before $campaign->save(false); you can add this to remove space.3. How to get rid of the space before the prefix?
$campaign->name = str_replace(' ', '', $campaign->name);
<?php
hooks()->addAction('copy_campaign', function(CAttributeCollection $collection){
/** @var Campaign $campaign **/
$campaign = $collection->itemAt('copied');
if (preg_match('/#(\d+)$/', $campaign->name, $matches)) {
$counter = (int)$matches[1];
$campaign->name = (string)preg_replace('/#(\d+)$/', $counter, $campaign->name);
}
// remove double white space
$campaign->name = str_replace(' ', ' ', $campaign->name);
$campaign->save(false);
});
hooks()->addAction('copy_campaign', function(CAttributeCollection $collection){
/** @var Campaign $initialCampaign **/
$initialCampaign = $collection->itemAt('campaign');
/** @var Campaign $newCampaign **/
$newCampaign = $collection->itemAt('copied');
$newCampaign->name = $initialCampaign->name;
if (preg_match('/(#)?(\d+)$/', $newCampaign->name, $matches)) {
$counter = (int)$matches[2] + 1;
$newCampaign->name = (string)preg_replace('/(#)?(\d+)$/', $counter, $newCampaign->name);
} else {
$newCampaign->name .= ' 1';
}
// remove double white space
$newCampaign->name = str_replace(' ', ' ', $newCampaign->name);
$newCampaign->save(false);
});