概要
woocommerce_product_importer_time_exceeded
フィルタは、WooCommerce製品インポートプロセスにおいて、インポートの時間が制限を超えた場合に使用されるフックです。このフィルタを使用することで、インポートがタイムアウトした際に特定のカスタム処理を実行したり、エラーメッセージをカスタマイズしたりすることができます。
このフィルタは、以下のような機能を実装する際によく使われます。
- エラーメッセージのカスタマイズ
- インポートプロセスのログ記録
- インポート再試行の実装
- タイムアウト設定の調整
- 特定条件下でのインポートの中断
- ユーザーへの通知機能の追加
構文
add_filter( 'woocommerce_product_importer_time_exceeded', 'your_custom_function' );
パラメータ
bool
$exceeded : タイムアウトが発生したかどうかを示す真偽値object
$importer : インポーターモジュールのインスタンス
戻り値
bool
: true を返すとインポートが中断される
使用可能なバージョン
- WooCommerce バージョン: 2.6 以降
- WordPress バージョン: 4.5 以降
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード 1: エラーメッセージのカスタマイズ
add_filter( 'woocommerce_product_importer_time_exceeded', 'custom_time_exceeded_message' );
function custom_time_exceeded_message( $exceeded ) {
if ( $exceeded ) {
wc_add_notice( __( 'インポートがタイムアウトしました。再試行してください。', 'your-text-domain' ), 'error' );
}
return $exceeded;
}
このコードは、インポートがタイムアウトした場合に、ユーザーにカスタムエラーメッセージを表示します。
サンプルコード 2: ログを記録する
add_filter( 'woocommerce_product_importer_time_exceeded', 'log_importer_timeout' );
function log_importer_timeout( $exceeded ) {
if ( $exceeded ) {
error_log( '製品インポートタイムアウトが発生しました。' );
}
return $exceeded;
}
このコードは、製品インポートがタイムアウトした際にエラーログにメッセージを書き込みます。
サンプルコード 3: インポートの再試行を促す
add_filter( 'woocommerce_product_importer_time_exceeded', 'suggest_retry_import' );
function suggest_retry_import( $exceeded ) {
if ( $exceeded ) {
echo '<div class="notice notice-warning"><p>インポートがタイムアウトしました。<a href="' . admin_url( 'admin.php?page=wc-products' ) . '">再試行してください</a>.</p></div>';
}
return $exceeded;
}
このコードは、タイムアウトが発生した場合に再試行のリンクを提供します。
サンプルコード 4: タイムアウト設定を調整する
add_filter( 'woocommerce_product_importer_time_exceeded', 'adjust_timeout_settings' );
function adjust_timeout_settings( $exceeded ) {
if ( $exceeded ) {
set_time_limit( 300 ); // タイムリミットを5分に設定
}
return $exceeded;
}
このコードは、インポートがタイムアウトした際にスクリプトの実行時間を調整します。
サンプルコード 5: 特定の条件でインポートを中断する
add_filter( 'woocommerce_product_importer_time_exceeded', 'conditional_import_stop' );
function conditional_import_stop( $exceeded ) {
if ( $exceeded && is_user_logged_in() ) {
return true; // ログインユーザーの場合、インポートを中断
}
return $exceeded;
}
このコードは、ログインユーザーの場合にインポートを中断します。