WordPress で基本的な CRM を構築する: カスタム機能を活用する
WordPress でシンプルな CRM システムを作成する方法を検討してきました。このシリーズの最後の部分では、ロールを使用して WordPress 管理インターフェイスの一部へのユーザー アクセスを制限する方法について説明しました。
今日は、カスタム機能を使用して連絡先のカスタム投稿タイプへのアクセスのみを制限する方法について説明します。
カスタム関数
以前は WordPress ユーザーのアクセス レベルを引き下げていましたが、ユーザーは編集者または作成者の役割を割り当てることで、引き続き投稿とコメントを管理できます。これらの機能はいずれも役に立たないため、指定したユーザーに連絡先カスタム投稿タイプのみへのアクセスを許可することで、アクセスをさらに制限する必要があります。
これは次の方法で行うことができます:
- カスタム投稿タイプにカスタム機能を登録します
- 新しい WordPress ユーザー ロールを作成し、新しいカスタム機能のみをそのロールに割り当てます
- WordPress ユーザーを作成/編集し、新しい連絡先ロールに割り当てます
カスタム投稿タイプにカスタム機能を登録します
カスタム機能を登録すると、作成者が新しい連絡先を作成できるかどうかなど、後でどの WordPress ロールがそれらの機能にアクセスできるかを定義できます。
プラグイン ファイルの register_post_type()
関数呼び出しを編集して、capability_type => 'post'
を次のように置き換えます。
リーリー
register_post_type() 関数は次のようになります:
リーリー
- capability
パラメータを使用して独自の機能を定義し、それらを Post の同等のパラメータにマップします。これにより、WordPress はこれらの関数の意味を正確に理解できるようになります (つまり、
edit_contactは、連絡先カスタム投稿タイプで動作することを除いて、
edit_postと同じように動作します)。
私たちは、施行のために - map_meta_cap
を使用して上記の機能を WordPress の生の機能にマッピングするように WordPress に指示しました。

edit_contact、
edit_contacts など) があるかを WordPress に伝える必要があるために発生します。
add_role()
を使用すると、新しい WordPress ユーザー ロールを作成し、それに連絡先機能を割り当てることができます。ロールは WordPress オプション データに保存されるため、関数を呼び出す必要があるのは 1 回だけです。
これを行うには、プラグインの
関数の最後に次の関数を追加します。
リーリー
この機能は、CRM と呼ばれる新しい役割を WordPress に追加します。このロールに割り当てられたユーザーは、連絡先機能にのみアクセスできます。したがって、アクセスできるのは連絡先のカスタム投稿タイプのみです。
read
機能も割り当てられていることに注意してください。これは、ユーザーが自分のプロファイル (名前、パスワードなど) を編集できるようにするために必要です。ユーザーがログインすると、WordPress が自動的にプロフィール画面にリダイレクトするため、ユーザーにこれを許可する必要があります。
read
plugin_activation()
これは、プラグインをアクティブ化するときに、WPTutsCRM
クラスの
関数を呼び出す必要があることを WordPress に伝えます。
WordPress ユーザーを作成/編集し、新しい連絡先ロールに割り当てます
次に、プラグインを非アクティブ化してから再度アクティブ化し、WordPress 管理インターフェイスで
に移動します。
すべてがうまくいけば、ドロップダウン リストに新しい CRM ロールが表示されます:
次に、crm という名前の新しいユーザーを作成し、その新しいユーザーとしてログインしましょう。
が表示されます。他のメニュー オプションは Dashboard と Profile のみです。
如果我们注销并以 WordPress 管理员、编辑或作者身份重新登录,您会发现 WordPress 管理菜单中仍然缺少联系人自定义帖子类型: 这个是因为我们只分配了 To fix this, let’s assign the Custom Capabilities to the Administrator and Editor Roles by adding the following code to the end of the 在这里,我们迭代要为其分配自定义功能的角色,检查该角色是否存在。如果是,我们就会迭代之前定义的自定义功能,将它们添加到角色中。 您会注意到我们没有向作者角色添加任何自定义功能;这是因为我们不想分配所有功能,因为作者角色传统上只允许对该用户自己的帖子进行写入访问。 让我们通过为作者角色添加一些功能来继续构建我们的 我们的整个函数现在应该如下所示: 以管理员、编辑或作者身份登录现在将在 WordPress 管理菜单中显示“联系人”选项: 如果 WordPress 管理员停用我们的插件, 为此,请在 与我们在插件激活时使用 停用我们的插件后,我们的 我们已经在 WordPress 中成功创建了一个简单的 CRM 系统,探索使用自定义帖子类型、帖子元字段和第三方插件集成来存储有关我们的客户和潜在客户的信息。 本教程还涵盖了 WordPress 的一些更高级的方面,包括通过 WP_List_Table 列显示高级自定义字段数据、过滤我们的帖子查询以搜索我们的高级自定义字段数据,以及通过角色和功能管理用户访问以限制访问仅限我们的 CRM 系统。为其他角色分配自定义功能
CRM
角色我们的联系人自定义帖子类型的功能。因此,所有其他用户角色仍然无权访问此帖子类型。plugin_activation()
function:// Add custom capabilities to Admin and Editor Roles
$roles = array( 'administrator', 'editor' );
foreach ( $roles as $roleName ) {
// Get role
$role = get_role( $roleName );
// Check role exists
if ( is_null( $role) ) {
continue;
}
// Iterate through our custom capabilities, adding them
// to this role if they are enabled
foreach ( $customCaps as $capability => $enabled ) {
if ( $enabled ) {
// Add capability
$role->add_cap( $capability );
}
}
}
plugin_activation()
函数:// Add some of our custom capabilities to the Author Role
$role = get_role( 'author' );
$role->add_cap( 'edit_contact' );
$role->add_cap( 'edit_contacts' );
$role->add_cap( 'publish_contacts' );
$role->add_cap( 'read_contact' );
$role->add_cap( 'delete_contact' );
unset( $role );
/**
* Activation hook to register a new Role and assign it our Contact Capabilities
*/
function plugin_activation() {
// Define our custom capabilities
$customCaps = array(
'edit_others_contacts' => true,
'delete_others_contacts' => true,
'delete_private_contacts' => true,
'edit_private_contacts' => true,
'read_private_contacts' => true,
'edit_published_contacts' => true,
'publish_contacts' => true,
'delete_published_contacts' => true,
'edit_contacts' => true,
'delete_contacts' => true,
'edit_contact' => true,
'read_contact' => true,
'delete_contact' => true,
'read' => true,
);
// Create our CRM role and assign the custom capabilities to it
add_role( 'crm', __( 'CRM', 'tuts-crm'), $customCaps );
// Add custom capabilities to Admin and Editor Roles
$roles = array( 'administrator', 'editor' );
foreach ( $roles as $roleName ) {
// Get role
$role = get_role( $roleName );
// Check role exists
if ( is_null( $role) ) {
continue;
}
// Iterate through our custom capabilities, adding them
// to this role if they are enabled
foreach ( $customCaps as $capability => $enabled ) {
if ( $enabled ) {
// Add capability
$role->add_cap( $capability );
}
}
}
// Add some of our custom capabilities to the Author Role
$role = get_role( 'author' );
$role->add_cap( 'edit_contact' );
$role->add_cap( 'edit_contacts' );
$role->add_cap( 'publish_contacts' );
$role->add_cap( 'read_contact' );
$role->add_cap( 'delete_contact' );
unset( $role );
}
清洁提升我们的角色
CRM
角色将保留在 WordPress 中。但是,鉴于没有其他插件或 WordPress 的一部分使用此角色,因此它是多余的 - 因此我们需要确保在停用我们的插件时删除 CRM
角色。plugin_activation()
函数下方添加以下函数:/**
* Deactivation hook to unregister our existing Contacts Role
*/
function plugin_deactivation() {
remove_role( 'crm' );
}
register_activation_hook()
函数的方式相同,当我们的插件停用时,我们可以使用 register_deactivation_hook()
函数。让我们在 register_activation_hook
调用下面添加以下内容:register_deactivation_hook( __FILE__, array( &$wpTutsCRM, 'plugin_deactivation' ) );
CRM
角色将不再可用。摘要
以上がWordPress で基本的な CRM を構築する: カスタム機能を活用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

Restapiの設計原則には、リソース定義、URI設計、HTTPメソッドの使用、ステータスコードの使用、バージョンコントロール、およびHATEOASが含まれます。 1。リソースは名詞で表され、階層で維持される必要があります。 2。HTTPメソッドは、GETを使用してリソースを取得するなど、セマンティクスに準拠する必要があります。 3.ステータスコードは、404など、リソースが存在しないことを意味します。 4。バージョン制御は、URIまたはヘッダーを介して実装できます。 5。それに応じてリンクを介してhateoasブーツクライアント操作をブーツします。

PHPでは、Try、Catch、最後にキーワードをスローすることにより、例外処理が達成されます。 1)TRYブロックは、例外をスローする可能性のあるコードを囲みます。 2)キャッチブロックは例外を処理します。 3)最後にブロックは、コードが常に実行されることを保証します。 4)スローは、例外を手動でスローするために使用されます。これらのメカニズムは、コードの堅牢性と保守性を向上させるのに役立ちます。

PHPの匿名クラスの主な機能は、1回限りのオブジェクトを作成することです。 1.匿名クラスでは、名前のないクラスをコードで直接定義することができます。これは、一時的な要件に適しています。 2。クラスを継承したり、インターフェイスを実装して柔軟性を高めることができます。 3.使用時にパフォーマンスとコードの読みやすさに注意し、同じ匿名のクラスを繰り返し定義しないようにします。

PHPでは、include、require、include_once、require_onceの違いは次のとおりです。1)include警告を生成し、実行を継続します。これらの機能の選択は、ファイルの重要性と、重複包含を防ぐために必要かどうかに依存します。合理的な使用は、コードの読みやすさと保守性を向上させることができます。

PHPには4つの主要なエラータイプがあります。1。notice:わずかなものは、未定義の変数へのアクセスなど、プログラムを中断しません。 2。警告:通知よりも深刻で、ファイルを含むなど、プログラムを終了しません。 3。ファタラー:最も深刻なのは、機能を呼び出すなど、プログラムを終了します。 4。ParseError:構文エラーは、エンドタグの追加を忘れるなど、プログラムの実行を防ぎます。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。
