Это потому, что согласно базовой функциональности wordpress хук save_post, запускаемый несколько раз (например, автосохранение), см. Документ Здесь
Так что в первый раз $ qty получит значение null. Значение массива $ будет
array (2) {[0] => int (1) [1] => int (0)}
blockquote>Необходимо переписать код следующим образом .
add_action( 'save_post', 'mp_sync_on_product_save', 11, 1 ); function mp_sync_on_product_save( $product_id ) { global $wpdb; if( ! ( wp_is_post_revision( $product_id) || wp_is_post_autosave( $product_id ) ) ) { $product = wc_get_product( $product_id ); $qty = get_field('maximum_entries', $product_id); $array = range(1, $qty); foreach ($array as $ticket) { $wpdb->insert('wp_tickets', array( 'ticket_number' => $ticket, )); } } }
Примечание: оставить приоритет add_action более 10, поскольку его приоритет по умолчанию
blockquote>
В admin.py, который, как вы знаете, обязательно загрузится, попробуйте:
admin.site.unregister(User)
admin.site.unregister(Group)
admin.site.unregister(Site)
Если Вы добрались:
django.contrib.admin.sites. NotRegistered: модель Group не регистрируется
, Тогда удостоверяются что Ваш INSTALLED_APPS в надлежащем порядке как это:
enter code hereINSTALLED_APPS = (
# [1] Django apps
'django.contrib.auth',
...
# [2] your custom apps
'anyproject.anytuff',
)
Цикл через все приложения и нерегистр любые модели они зарегистрировались.
from django.apps import apps
# De-register all models from other apps
for app_config in apps.get_app_configs():
for model in app_config.get_models():
if admin.site.is_registered(model):
admin.site.unregister(model)
# Register only those models you want
...