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 サイトの他の関連記事を参照してください。

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

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